最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

比較常用UML類圖幾種關(guān)系的小結(jié)

 更新時間:2015年10月14日 11:06:12   投稿:mrr  
本文給大家總結(jié)了UML類圖中幾種比較常用的關(guān)系小總結(jié),需要的朋友可以參考下

Unified Modeling Language (UML)又稱統(tǒng)一建模語言或標(biāo)準(zhǔn)建模語言,是始于1997年一個OMG標(biāo)準(zhǔn),它是一個支持模型化和軟件系統(tǒng)開發(fā)的圖形化語言,為軟件開發(fā)的所有階段提供模型化和可視化支持,包括由需求分析到規(guī)格,到構(gòu)造和配置。 面向?qū)ο蟮姆治雠c設(shè)計(OOA&D,OOAD)方法的發(fā)展在80年代末至90年代中出現(xiàn)了一個高潮,UML是這個高潮的產(chǎn)物。它不僅統(tǒng)一了Booch、Rumbaugh和Jacobson的表示方法,而且對其作了進(jìn)一步的發(fā)展,并最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語言。

在UML類圖中,比較常用的幾種關(guān)系有:泛化(Generalization), 實(shí)現(xiàn)(Realization), 關(guān)聯(lián)(Association), 聚合(Aggregation), 組合(Composition), 依賴(Dependency),接下來,通過本篇文章給大家一一做下詳解,具體詳情如下:

1.       泛化(Generalization)

【泛化關(guān)系】:是一種繼承關(guān)系, 表示一般與特殊的關(guān)系, 它指定了子類如何特化父類的所有特征和行為. 例如:老虎是動物的一種, 即有老虎的特性也有動物的共性.

【箭頭指向】:帶三角箭頭的實(shí)線,箭頭指向父類

 

2. 實(shí)現(xiàn)(Realization)

【實(shí)現(xiàn)關(guān)系】:是一種類與接口的關(guān)系, 表示類是接口所有特征和行為的實(shí)現(xiàn).

【箭頭指向】:帶三角箭頭的虛線,箭頭指向接口

3. 關(guān)聯(lián)(Association)

【關(guān)聯(lián)關(guān)系】:是一種擁有的關(guān)系, 它使一個類知道另一個類的屬性和方法;如:老師與學(xué)生,丈夫與妻子

關(guān)聯(lián)可以是雙向的,也可以是單向的。雙向的關(guān)聯(lián)可以有兩個箭頭或者沒有箭頭,單向的關(guān)聯(lián)有一個箭頭。

【代碼體現(xiàn)】:成員變量

【箭頭及指向】:帶普通箭頭的實(shí)心線,指向被擁有者

上圖中,老師與學(xué)生是雙向關(guān)聯(lián),老師有多名學(xué)生,學(xué)生也可能有多名老師。但學(xué)生與某課程間的關(guān)系為單向關(guān)聯(lián),一名學(xué)生可能要上多門課程,課程是個抽象的東西他不擁有學(xué)生。

上圖為自身關(guān)聯(lián):

 

4. 聚合(Aggregation)

【聚合關(guān)系】:是整體與部分的關(guān)系, 且部分可以離開整體而單獨(dú)存在. 如車和輪胎是整體和部分的關(guān)系, 輪胎離開車仍然可以存在.

聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是強(qiáng)的關(guān)聯(lián)關(guān)系;關(guān)聯(lián)和聚合在語法上無法區(qū)分,必須考察具體的邏輯關(guān)系。

【代碼體現(xiàn)】:成員變量

【箭頭及指向】:帶空心菱形的實(shí)心線,菱形指向整體

5. 組合(Composition)

【組合關(guān)系】:是整體與部分的關(guān)系, 但部分不能離開整體而單獨(dú)存在. 如公司和部門是整體和部分的關(guān)系, 沒有公司就不存在部門.

       組合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系還要強(qiáng)的關(guān)系,它要求普通的聚合關(guān)系中代表整體的對象負(fù)責(zé)代表部分的對象的生命周期

【代碼體現(xiàn)】:成員變量

【箭頭及指向】:帶實(shí)心菱形的實(shí)線,菱形指向整體

6. 依賴(Dependency)

【依賴關(guān)系】:是一種使用的關(guān)系,  即一個類的實(shí)現(xiàn)需要另一個類的協(xié)助, 所以要盡量不使用雙向的互相依賴.

【代碼表現(xiàn)】:局部變量、方法的參數(shù)或者對靜態(tài)方法的調(diào)用

【箭頭及指向】:帶箭頭的虛線,指向被使用者

 

各種關(guān)系的強(qiáng)弱順序:

泛化 = 實(shí)現(xiàn) > 組合 > 聚合 > 關(guān)聯(lián) > 依賴

下面這張UML圖,比較形象地展示了各種類圖關(guān)系:


以上內(nèi)容就是本文的全部敘述,希望大家喜歡。

相關(guān)文章

  • IDEA快速生成實(shí)體類的示例教程

    IDEA快速生成實(shí)體類的示例教程

    這篇文章主要介紹了IDEA快速生成實(shí)體類的示例教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Java?JVM虛擬機(jī)調(diào)優(yōu)詳解

    Java?JVM虛擬機(jī)調(diào)優(yōu)詳解

    JVM是JavaVirtualMachine(Java虛擬機(jī))的縮寫,JVM是一種用于計算設(shè)備的規(guī)范,它是一個虛構(gòu)出來的計算機(jī),是通過在實(shí)際的計算機(jī)上仿真模擬各種計算機(jī)功能來實(shí)現(xiàn)的,本文主要介紹了jvm調(diào)優(yōu),感興趣的小伙伴們可以參考一下<BR>
    2022-07-07
  • Java INPUTSTREAM如何實(shí)現(xiàn)重復(fù)使用

    Java INPUTSTREAM如何實(shí)現(xiàn)重復(fù)使用

    這篇文章主要介紹了Java INPUTSTREAM如何實(shí)現(xiàn)重復(fù)使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • spring AOP的Around增強(qiáng)實(shí)現(xiàn)方法分析

    spring AOP的Around增強(qiáng)實(shí)現(xiàn)方法分析

    這篇文章主要介紹了spring AOP的Around增強(qiáng)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了spring面向切面AOP的Around增強(qiáng)具體步驟與相關(guān)操作方法,需要的朋友可以參考下
    2020-01-01
  • springboot controller 增加指定前綴的兩種實(shí)現(xiàn)方法

    springboot controller 增加指定前綴的兩種實(shí)現(xiàn)方法

    這篇文章主要介紹了springboot controller 增加指定前綴的兩種實(shí)現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java實(shí)現(xiàn)線程同步的四種方式總結(jié)

    Java實(shí)現(xiàn)線程同步的四種方式總結(jié)

    Java線程同步屬于Java多線程與并發(fā)編程的核心點(diǎn),需要重點(diǎn)掌握,下面我就來詳解Java線程同步的4種主要的實(shí)現(xiàn)方式,需要的可以參考一下
    2022-09-09
  • Java中的switch新特性與使用詳解

    Java中的switch新特性與使用詳解

    這篇文章主要介紹了Java中的switch新特性與使用詳解,Switch語句可以實(shí)現(xiàn)根據(jù)某一變量選則執(zhí)行代碼塊,當(dāng)然直接使用If語句也可以做到,但是有時候使用Switch語句往往更加簡潔優(yōu)美,需要的朋友可以參考下
    2023-11-11
  • Spring Boot 集成 ElasticSearch應(yīng)用小結(jié)

    Spring Boot 集成 ElasticSearch應(yīng)用小結(jié)

    這篇文章主要介紹了Spring Boot 集成 ElasticSearch應(yīng)用小結(jié),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-11-11
  • 使用@TableField(updateStrategy=FieldStrategy.IGNORED)遇到的坑記錄

    使用@TableField(updateStrategy=FieldStrategy.IGNORED)遇到的坑記錄

    這篇文章主要介紹了使用@TableField(updateStrategy=FieldStrategy.IGNORED)遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Springboot2.1.6集成activiti7出現(xiàn)登錄驗(yàn)證的實(shí)現(xiàn)

    Springboot2.1.6集成activiti7出現(xiàn)登錄驗(yàn)證的實(shí)現(xiàn)

    這篇文章主要介紹了Springboot2.1.6集成activiti7出現(xiàn)登錄驗(yàn)證的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論

辰溪县| 萨嘎县| 大埔区| 新沂市| 兴隆县| 洞口县| 雷山县| 临城县| 时尚| 翼城县| 耒阳市| 怀集县| 阳谷县| 浦北县| 蒙阴县| 怀远县| 永吉县| 新兴县| 吉木萨尔县| 禄劝| 保定市| 敦煌市| 渭源县| 宁津县| 五常市| 岳西县| 康马县| 周口市| 阳春市| 栖霞市| 化隆| 宁晋县| 台江县| 苍南县| 黔西| 武冈市| 西和县| 新余市| 安远县| 武陟县| 盱眙县|