1. 程式人生 > >【菜鳥也瘋狂UML系列】——淺析UML四種關系

【菜鳥也瘋狂UML系列】——淺析UML四種關系

顏色 雙向關聯 直線 不同的 .net 人的 學習 系列 主類

在UML中。關系是很重要的。它抽象出對象之間的聯系,讓對象構成某個聯系起來的結構。以下將簡要分析一下UML中的四種關系:關聯。依賴,泛化,實現。


一、舉例羅列


1、關聯(Association)

關聯是用來連接有結構關系的對象,能夠連接同樣類或者不同類。也能夠是雙向關聯和單向關聯。

舉例說明: 單向關聯:人打開電視機。是一個單向關聯。


技術分享

雙向關聯:人和公司的關系,人是公司的雇員,公司是人的雇主。(1個公司有0或者n個雇員)
技術分享


(1)聚合(Aggregate)


表示的是實體對象之間的關系,表達總體與部分的關系,總體由部分構成,可是此關系不是強依賴關系,也就是說,部分不會依據總體的消失而消失。

聚合關系用一條空心菱形箭頭直線表示。箭頭指向總體。

書和風格是一組聚合關系,風格有大小,顏色。能夠是書的一部分,可是一旦脫離了書這個實體,實體風格也能夠單獨存在。


技術分享


(2)組合(Composition)

表示實體對象關系,表達總體與部分的關系,總體擁有部分。是強依賴的聚合關系,部分會隨著總體的消失而消失。

組合關系用一條實心菱形箭頭直線表示,箭頭指向組合的母對象,也就是總體,表示部分屬於總體。


書和頁是一個組合關系,當實體頁脫離了書,便不存在了,隨著書一起消失了。
技術分享


2、依賴(Dependency)


表示一個對象在執行期會使用還有一個對象的關系,是在執行期產生的,並伴隨著執行場景的不同,依賴關系也不同。

依賴關系用一條帶箭頭的虛線表示,箭頭指向被依賴的對象。也能夠表使用關系。
人使用刀削蘋果。場景為削蘋果,人依賴於刀。

技術分享
3、泛化(Generalization)


表示對象之間的繼承關系。表示一個類對還有一個類的繼承。

用空心箭頭的直線表示,箭頭指向被繼承的對象。

雇員類和雇主類,都繼承與人類。
技術分享


4、實現(Realize)


表示類對接口的實現用帶空心箭頭的虛線表示,箭頭指向接口。 技術分享

二、比較分析


1、聚合VS組合


兩者都是表示總體與部分的關系,可是不同的是,組合是強依賴聚合關系。部分脫離總體便不再存在。而聚合關系。部分脫離總體還能夠繼續存在。


2、關聯VS依賴


剛開始分不清關聯和依賴,後來看了視頻裏講的是依賴能夠作為使用關系,在不同場景下的使用關系。沒有場景就沒有關系;而關聯不同,關聯表示的是兩個對象之間的關系。不會消失的。


3、泛化VS實現


對於實現與泛化的比較,泛化是類與類之間的繼承。接口與接口之間的繼承,而實現是類對接口的實現。

但從繪圖方面來看。除了一個是直線。一個是虛線外沒有什麽不同的。

關系的強弱也一樣。 最後,比較幾種關系的強弱:
依賴<關聯<聚合<組合<泛化=實現

三、總結


通過對照學習,加上舉例,能更加清楚的理解幾種關系的不同。

遺留問題:實現是不是泛化的一種表現形式?

【菜鳥也瘋狂UML系列】——淺析UML四種關系