1. 程式人生 > >盤點UML中的四種關系

盤點UML中的四種關系

依賴關系 學習 獵豹 ron 盤點 部分 分享 類元 family

生活中,我們既是獨立的個體,又通過聯系形成各種關系,比方說:朋友。戀人。父子,同學……於是乎,出現了神乎其神的六人定律

那麽在UML中又存在什麽樣的關系呢?以下我們來梳理一下。


關聯(Association)
描寫敘述了兩個或多個類之間的結構性關系。
圖示:直線或直線+箭頭
雙向關聯:
指兩方都知道對方的存在。都能夠調用對方的公共屬性和方法。
箭頭及指向:雙向的關聯能夠有兩個箭頭或者沒有箭頭
例1:公司和人
技術分享
將來在Person類中會有屬性名為employer,類型為Company ;在Company類中會有一個屬性為Employee。類型為Person
例2:教師和學生


技術分享
單向關聯:
指一方能夠調用對方的屬性和方法。


箭頭及指向:單向關聯是帶普通箭頭的實心線,指向被擁有者。


例3:學生和某課程
技術分享
一名學生可能要上多門課程,課程是個抽象的東西他不擁有學生
自身關聯(反身關聯):
自己引用自己,帶著一個自己的引用。就是在自己的內部有著一個自身的引用。
聚合關系:
是總體與部分的關系,且部分能夠離開總體而單獨存在。


箭頭及指向:帶空心菱形的實心線,菱形指向總體
例4:車和輪胎是總體和部分的關系。輪胎離開車仍然能夠存在


技術分享
組合關系:
是總體與部分的關系。但部分不能離開總體而單獨存在。
箭頭及指向:帶實心菱形的實線,菱形指向總體
例5:公司和部門是總體和部分的關系。沒有公司就不存在部門
技術分享
依賴(Dependency)
依賴關系是一種使用關系。特定事物的改變有可能會影響到使用該事物的事物,反之不成立。通常情況下。依賴關系體如今某個類的方法使用還有一個類作為參數
圖示:虛線+箭頭
例6:動物與氧氣和水的關系

技術分享
泛化(Generalization)
泛化關系是一種繼承關系,是一種特殊/一般關系,特殊元素(子元素)的對象可替代一般元素(父元素)的對象。用這樣的方法。子元素共享了父元素的結構和行為。
圖示:實線+空心三角
例7:動物與獵豹和狼的關系
技術分享
實現(Realization):
實現是類元之間的語義關系。在該關系中一個類元描寫敘述了還有一個類元保證實現的契約。

一個類實現了一個接口。


圖示:虛線+空心三角(箭頭指向接口)
例8:遙控器類實現了電視劇的換臺接口
技術分享

各種關系的強弱順序:
泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴

用一個通俗易懂的UML圖來回想一下這幾種關系

技術分享

如今對UML的學習僅僅是剛剛開始。對知識的理解還不夠充分,假設有錯誤的地方,還望大牛可以指點一二,萬分感謝!


盤點UML中的四種關系