關聯關係 根據事物之間的緊密程序,分爲一般關聯,聚合關聯,和組合關聯。
一般關聯:
一般關聯兩者處於同一個級別,例如唐僧與徒弟都不是一般的存在
在 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了