UML”關聯關係“與“依賴關係”的區別


關聯關係 根據事物之間的緊密程序,分爲一般關聯,聚合關聯,和組合關聯。

一般關聯:

一般關聯兩者處於同一個級別,例如唐僧與徒弟都不是一般的存在

在 Java 或 c++ 中,關聯關係是通過使用成員變量來實現的

可以是雙向的

 class 徒弟 
   { }; 
   class 唐僧 
    { 
    protected: 
   list<徒弟> tdlist; 
    }; 
    

聚合關聯:

聚合關聯聚合是整體和部分之間的關係,例如:汽車和引擎,輪子

聚合關係也是通過成員變量來實現的

class 引擎 
   { 
   }; 
   class 輪胎 
   { 
   }; 
   class 汽車 
   { 
   protected: 
   引擎 engine; 
   輪胎 tyre[4]; 
   }; 
   

組合關聯:

組合類負責被組合類的生命週期。是一種更強的聚合關係。部分不能脫離整體存在, 例如:公司和部門,人和手,腳,部門是不能脫離公司而存在,人死了手、腳也掛了

1 class 肢 
   { 
   }; 
   class 人 
   { 
   protected: 
   肢 limb[4]; 
   }; 

如何記憶:一般關聯較弱,用一個箭頭表示,聚合關聯較強,所以用兩個箭頭表示,組合關係就更強了,所以用最強的在兩個箭頭中填充黑色神祕物質。


依賴關係:依賴關係比關聯繫弱一點, 分爲三種,一般依賴,實現依賴,繼承依賴

一般依賴:

依賴總是單向的

依賴關係在 Java 或 C++ 語言中體現爲局部變量、方法的參數或者對靜態方法的調用

 public class Person
   { 
   public void buy(Car car) 
   { ... } 
   } 


實現依賴:

在類圖中就是接口和實現的關係

這個沒什麼好說的,在一般依賴箭頭上加條線就行了


繼承依賴
也就是繼承關係

在實現依賴的基礎上,把虛線變成實線就OK了



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章