UML類圖、依賴關系

一、首先了解類圖各個區(qū)域代表的含義

假設現(xiàn)在有孫悟空和豬八戒兩個類,可以看到他們有共同的屬性和方法,孫悟空則多了特定的屬性的方法,goldBand屬性就表示他的金箍,headAche方法就表示被念咒的時候會頭痛

假設此時增加一個白龍馬的類,那么他同樣也有名字、年齡等相同屬性,這在繪制UML類圖或者編寫代碼的時候顯然是一些重復的操作,所以可以把這些共同的特征抽象出來。

二、連接線的含義

在uml中是有很多類連接在一塊的,所以還要了解一下類與類之間連線類型的含義:

依賴的連接線用:“- - - - ->”表示,箭頭指向誰就是依賴誰

關聯(lián)的連接線也用:“——>”表示,指向誰就是關聯(lián)誰

三、了解一下各個關系的概念:

依賴(Dependency)關系是類與類之間的聯(lián)接。依賴關系表示一個類依賴于另一個類的定義。例如,一個人(Person)可以買車(car)和房子(House),Person類依賴于Car類和House類的定義,因為Person類引用了Car和House。與關聯(lián)不同的是,Person類里并沒有Car和House類型的屬性,Car和House的實例是以參量的方式傳入到buy()方法中去的。一般而言,依賴關系在Java語言中體現(xiàn)為局域變量、方法的形參,或者對靜態(tài)方法的調(diào)用。

關聯(lián)(Association)關系是類與類之間的聯(lián)接,它使一個類知道另一個類的屬性和方法。關聯(lián)可以是雙向的,也可以是單向的。在Java語言中,關聯(lián)關系一般使用成員變量來實現(xiàn)。

聚合(Aggregation) 關系是關聯(lián)關系的一種,是強的關聯(lián)關系。聚合是整體和個體之間的關系。例如,汽車類與引擎類、輪胎類,以及其它的零件類之間的關系便整體和個體的關系。與關聯(lián)關系一樣,聚合關系也是通過實例變量實現(xiàn)的。但是關聯(lián)關系所涉及的兩個類是處在同一層次上的,而在聚合關系中,兩個類是處在不平等層次上的,一個代表整體,另一個代表部分。

組合(Composition) 關系是關聯(lián)關系的一種,是比聚合關系強的關系。它要求普通的聚合關系中代表整體的對象負責代表部分對象的生命周期,組合關系是不能共享的。代表整體的對象需要負責保持部分對象和存活,在一些情況下將負責代表部分的對象湮滅掉。代表整體的對象可以將代表部分的對象傳遞給另一個對象,由后者負責此對象的生命周期。換言之,代表部分的對象在每一個時刻只能與一個對象發(fā)生組合關系,由后者排他地負責生命周期。部分和整體的生命周期一樣?!浴禞ava面向?qū)ο缶幊獭罚髡撸簩O衛(wèi)琴

四、各個關系在UML中的表示

1、繼承(Inheritance)關系。Animal此時可作為抽象類,在uml圖中可以用斜體“Animal”表示,或者“《Animal》”

2、關聯(lián)關系,孫悟空吃香蕉

3、聚合關系,聚合是整體和個體之間的關系。比如臺式電腦

臺式電腦是整體,鍵盤或者鼠標是個體,個體可以脫離整體獨立存在。

4、組合關系

如果把車站看作一個整體,也候車廳與洗手間看成個體的話,那么組合關系就表示 個體不能存在于整體之外,因為如果車站被拆掉的話,候車廳與服務臺也沒有存在的必要。



參考:https://www.cnblogs.com/meishibiexuejava/p/8551061.html

參考:https://www.cnblogs.com/lsgxeva/p/7773190.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 在UML類圖中,常見的有以下幾種關系: 泛化(Generalization), 實現(xiàn)(Realization),關...
    陳桐Caliburn閱讀 842評論 0 1
  • 在UML 2.0的13種圖形中,類圖是使用頻率最高的UML圖之一。Martin Fowler在其著作《UML Di...
    雷雷_zll閱讀 13,511評論 0 14
  • UML類圖是一種結(jié)構(gòu)圖,用于描述一個系統(tǒng)的靜態(tài)結(jié)構(gòu)。類圖以反映類結(jié)構(gòu)和類之間關系為目的,用以描述軟件系統(tǒng)的結(jié)構(gòu),是...
    美虎轆轆閱讀 696評論 0 0
  • 轉(zhuǎn)自:http://www.uml.org.cn/oobject/201211231.asp如有侵權(quán),必刪! 在U...
    洛的俠閱讀 636評論 0 0
  • UML類圖是一種結(jié)構(gòu)圖,用于描述一個系統(tǒng)的靜態(tài)結(jié)構(gòu)。類圖以反映類結(jié)構(gòu)和類之間關系為目的,用以描述軟件系統(tǒng)的結(jié)構(gòu),是...
    斯文小螞蟻閱讀 4,846評論 0 2

友情鏈接更多精彩內(nèi)容