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

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

    在UML中,關係是非常重要的,它抽象出物件之間的聯絡,讓物件構成某個聯絡起來的結構。下面將簡要分析一下UML中的四種關係:關聯,依賴,泛化,實現。

一、舉例羅列

    1、關聯(Association)

    關聯是用來連線有結構關係的物件,可以連線相同類或者不同類,也可以是雙向關聯和單向關聯。

    舉例說明: 單向關聯:人開啟電視機,是一個單向關聯。        雙向關聯:人和公司的關係,人是公司的僱員,公司是人的僱主。(1個公司有0或者n個僱員)     

(1)聚合(Aggregate)

    表示的是實體物件之間的關係,表達整體與部分的關係,整體由部分構成,但是此關係不是強依賴關係,也就是說,部分不會根據整體的消失而消失。聚合

關係用一條空心菱形箭頭直線表示,箭頭指向整體。

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

   (2)組合(Composition)

    表示實體物件關係,表達整體與部分的關係,整體擁有部分,是強依賴的聚合關係,部分會隨著整體的消失而消失。組合關係用一條實心菱形箭頭直線表示,箭頭指向組合的母物件,也就是整體,表示部分屬於整體。

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

    2、依賴(Dependency)

    表示一個物件在執行期會使用另一個物件的關係,是在執行期產生的,並伴隨著執行場景的不同,依賴關係也不同。依賴關係用一條帶箭頭的虛線表示,
箭頭指向被依賴的物件。也可以表使用關係。     人使用刀削蘋果,場景為削蘋果,人依賴於刀。    3、泛化(Generalization)     表示物件之間的繼承關係,表示一個類對另一個類的繼承。用空心箭頭的直線表示,箭頭指向被繼承的物件。    僱員類和僱主類,都繼承與人類。

    4、實現(Realize)

    表示類對介面的實現用帶空心箭頭的虛線表示,箭頭指向介面。

  二、比較分析

1、聚合VS組合

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

2、關聯VS依賴

   剛開始分不清關聯和依賴,後來看了視訊裡講的是依賴可以作為使用關係,在不同場景下的使用關係,沒有場景就沒有關係;而關聯不同,關聯表示的是兩個物件之間的關係,不會消失的。

    3、泛化VS實現

    對於實現與泛化的比較,泛化是類與類之間的繼承,介面與介面之間的繼承,而實現是類對介面的實現。但從畫圖方面來看,除了一個是直線,一個是虛線外沒有什麼不同的。關係的強弱也一樣。     最後,比較幾種關係的強弱:     依賴<關聯<聚合<組合<泛化=實現

  三、總結

通過對比學習,加上舉例,能更加清楚的理解幾種關係的不同。     遺留問題:實現是不是泛化的一種表現形式?