依賴關係(dependence):
依賴關係是一種使用關係,對於兩個相對獨立的系統,當乙個系統負責構造另乙個系統的例項,當乙個系統改變會影響到另乙個系統,反之不成立。或者依賴另乙個系統的服務時,例如生產零件的機器和零件,機器負責構造零件物件。
出現依賴的三種情況:
(1)a類是b類某個方法的區域性變數。
(2)a類是b類的乙個引數。
(3)a類向b類傳送訊息,讓b類變化。
生命週期:b類開始呼叫含有a類的方法開始例項化,當方法使用結束後釋放。
[csharp]view plain
copy
public
class
動物
}
關聯關係(association ):
關聯是一種結構化的關係,指一種物件和另一種物件有聯絡。給定有關聯的兩個類,可以從乙個類的物件得到另乙個類的物件。當你想要表示結構化關係時使用關聯,如果幾個類元的例項之間有聯絡,那麼這幾個類元之間的語義關係即關聯。關聯描述了系統中物件或例項之間的離散連線。例如:例如客戶和訂單,每個訂單對應著固定的訂單。
生命週期:關聯關係a類將b類新增為屬性,由a例項化開始例項化,a類釋放,b類隨著釋放。
[csharp]view plain
copy
public
class
動物
} 泛化關係(generalization):
是乙個類(稱為子類、子介面)繼承另外的乙個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力,繼承是類與類或者介面與介面之間最常見的關係
[csharp]view plain
copy
public
class
動物
~動物()
public
virtual
void
dispose()
}//end 動物
public
class
鳥 : 動物
~鳥()
public
override
void
dispose()
public
void
下蛋()
}//end 鳥
組合關係(composition):
組合關係是一種整體與部分的關係,強調的是整體性,而且是不可分割的。它直接要求包含物件對被包含物件的擁有以及包含物件與被包含物件生命週期的關係,被包含的物件是可以共享的。例如,鳥的翅膀是鳥的一部分。
[csharp]view plain
copy
public
class
鳥
public
void
finalize() throws throwable
} public
class
翅膀
~翅膀()
public
virtual
void
dispose()
}//end 翅膀
聚合(aggregation)關係:
關聯關係的一種特例, 是強的關聯關係. 聚合是整體和個體之間的關係。它暗含這一種所屬關係以及生命期關係。被聚合的物件是可以共享的。雖然是共享的,聚合代表的是一種更親密的關係。
[csharp]view plain
copy
public
class
鳥群
~鳥群()
public
virtual
void
dispose()
}//end 鳥群
組合與聚合的區別:1.建構函式不同
a.聚合:個體是群體的乙個引數
b.組合:構造中包括個體的例項化
2.封裝性不同
a.聚合:外界可以看見個體類和群體類。
b.組合:外界只能看見群體類
五種關係的耦合性:依賴《關聯《聚合《組合《泛化
UML六種關係
大話設計模式的學習已經進行了好長的一段時間,通過學習設計模式,發現類圖非常重要,當然類圖的關係依然重要,那麼接下來就再來學習一下類圖的關係。首先就從我覺得見的最多的來分享吧,第乙個就是泛化。特點 三角箭頭 實線 箭頭指的方向為父類 特點 三角箭頭 虛線 箭頭指向介面 是一種使用關係,即乙個類的實線需...
UML六種關係
概念 泛化是一種一般與特殊 一般與具體之間關係的描述,具體描述建立在一般描述的基礎之上,並對其進行了擴充套件。在程式中是通過繼承類實現的。比如狗是對動物的具體描述,在物件導向設計的時候一般把狗設計為動物的子類。表示方法 空心三角形箭頭的實線,子類指向父類 實現概念 實現是一種類與介面的關係,表示類是...
UML 四種關係
在畫類圖之前,首先要理清uml中的四種關係,常見的有以下四種關係 泛化 generalization 實現 realization 關聯 association 依賴 dependency 而在關聯中又包括 聚合 aggregation 組合 composition 在這幾種關係中他們又有剪不斷的聯...