1. OvervIEw
UML設計類中,類的關系分為Generalization(泛化),Dependency(依賴關系)、Association(關聯關系)、Aggregation(聚合關系)、Composition(組合關系)五種!
2. Generalization(泛化)
Generalization(泛化)表現為繼承或實現關系(is a)。具體形式為類與類之間的繼承關系,接口與接口之間的繼承關系,類對接口的實現關系。
3. Dependency(依賴)
表現為函數中的參數(use a)。是類與類之間的連接,表示一個類依賴於另一個類的定義,其中一個類的變化將影響另外一個類。例如如果A依賴於B,則B體現為局部變量,方法的參數、或靜態方法的調用。
4. Association(關聯)
表現為變量(has a )。類與類之間的聯接,它使一個類知道另一個類的屬性和方法。例如如果A依賴於B,則B體現為A的全局變量。關聯關系有雙向關聯和單向關聯。雙向關聯:兩個類都知道另一個類的公共屬性和操作。單向關聯:只有一個類知道另外一個類的公共屬性和操作。大多數關聯應該是單向的,單向關系更容易建立和維護,有助於尋找可服用的類。
5. Aggregation(聚合)
關聯關系的一種,是強的關聯關系。聚合關系是整體和個體的關系。普通關聯關系的兩個類處於同一層次上,而聚合關系的兩個類處於不同的層次,一個是整體,一個是部分。同時,是一種弱的“擁有”關系。體現的是A對象可以包含B對象,但B對象不是A對象的組成部分。具體表現為,如果A由B聚合成,表現為A包含有B的全局對象,但是B對象可以不在A創建的時刻創建。
6. Composition(組合)
關聯關系的一種,是比聚合關系強的關系。它要求普通的聚合關系中代表整體的對象負責代表部分的對象的生命周期。Composition(組合關系)是一種強的“擁有”關系,體現了嚴格的部分和整體的關系,部分和整體的生命周期一致。如果A由B組成,表現為A包含有B的全局對象,並且B對象在A創建的時刻創建。