終於明白六大類UML類圖關系了


UML,全稱Unified Modeling Language,統一建模語言。而UML圖分為用例圖、類圖、對象圖、狀態圖、活動圖、時序圖、協作圖、構件圖、部署圖等9種圖。

在面向對象語言中,我們經常看到有用UML類圖去表示各種接口和類之間關系的。但是,每次看的都是雲里霧里,搞不清楚那些虛線,箭頭都是代表什么意思。今天,就讓我們來一探究竟吧。

UML類圖中有六種關系,分別是依賴關系,關聯關系,聚合關系,組合關系,實現關系,泛化關系。

經過我自己的理解,畫出了六種關系的示例圖。類的成員變量和方法前面的修飾符有public, private, protected, default,在UML類圖中分別用 +, -, #, ~表示。

一、依賴關系

依賴關系是一種使用關系,表示某個類依賴於另外一個類,通常表現為,某個類的方法的參數使用了另外一個類的對象。

在UML類圖中,依賴關系用帶箭頭的虛線表示,箭頭從使用類指向被依賴的類。下圖中表示,程序員依賴於計算機來編寫代碼。
file

二、關聯關系

關聯關系是對象之間的一種引用關系,表示一個類和另外一個類之間的聯系,如老師和學生,丈夫和妻子等。

關聯關系有單向和雙向的。在UML類圖中,單向關聯用一個帶箭頭的實線表示,箭頭從使用類指向被關聯的類,雙向關聯用帶箭頭或者沒有箭頭的實線來表示。
file

上圖表示老師和學生之間的關系是雙向的,一個老師可以有多個學生,一個學生也可以有多個老師。學生和課程之間是單向的,一個學生會學習多門課程,而課程是一個抽象的概念,它不擁有學生。

三、聚合關系

聚合關系是關聯關系的一種,表示整體和部分之間的關系,如學校和老師,車子和輪胎。

聚合關系在類中是通過成員對象來體現的,成員是整體的一部分,成員也可以脫離整體而存在。如老師是學校的一部分,同時老師也是獨立的個體,可以單獨存在。

在UML類圖中,用帶空心菱形的實線來表示聚合關系,菱形指向整體。
file

四、組合關系

組合關系是整體和部分之間的關系,也是關聯關系的一種,是一種比聚合關系還要強的關系。部分對象不能脫離整體對象而單獨存在,如人的身體和大腦之間的關系,大腦不能脫離身體而單獨存在。

在UML類圖中,用帶實心菱形的實線來表示組合關系,菱形指向整體。

file

五、實現關系

實現關系就是接口和實現類之間的關系。類實現了接口中的抽象方法。

在UML類圖中,用帶空心三角箭頭的虛線來表示實現關系,箭頭從實現類指向接口。

file

如上圖,北京大學和清華大學分別實現了大學接口。

六、泛化關系

泛化關系其實就是父子類之間的繼承關系,表示一般與特殊的關系,指定子類如何特殊化父類的特征和行為。

在UML類圖中,用帶空心三角箭頭的實線來表示泛化關系,箭頭從子類指向父類。

file

如上圖,父類動物有一個吃的方法,小鳥和獅子都繼承於動物類,小鳥有它特有的方法飛行,而獅子有特有的方法奔跑。

六種關系中,從弱到強依次是:
依賴關系 < 關聯關系 < 聚合關系 < 組合關系 < 實現關系 = 泛化關系


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM