關聯、組合、聚合、依賴關係比較

轉載自:http://www.blogjava.net/tinysun/archive/2009/02/21/255957.html

 

類之間的關係種類: Generalization(泛化)Dependency(依賴關係)Association(關聯關係)Aggregation(聚合關係)、Composition(合成關係)
    其中Aggregation(聚合關係)Composition(合成關係)屬於Association(關聯關係),是特殊的Association關聯關係。Generalization(泛化)表現爲繼承或實現關係(is a)。具體形式爲類與類之間的繼承關係,接口與接口之間的繼承關係,類對接口的實現關係。


     Association關聯 系表現爲變量(has a )。類與類之間的聯接,它使一個類知道另一個類的屬性和方法。例如如果A依賴於B,則B體現爲A的全局變量。關聯關係有雙向關聯和單向關聯。雙向關聯:兩個類都知道另一個類的公共屬性和操作。單向關聯:只有一個類知道另外一個類的公共屬性和操作。大多數關聯應該是單向的,單向關係更容易建立和維護,有助於尋找可服用的類。



    Aggregat ion(聚合關係) 是關聯關係的一種,是強的關聯關係。聚合關係是整體和個體的關係。普通關聯關係的兩個類處於同一層次上,而聚合關係的兩個類處於不同的層次,一個是整體,一個是部分。同時,是一種弱的“擁有”關係。體現的是A對象可以包含B對象,但B對象不是A對象的組成部分。具體表現爲,如果AB聚合成,表現爲A包含有B的全局對象,但是B對象可以不在A創建的時刻創建。



    Composition(組合關係)是關聯關係的一種,是比聚合關係強的關係。它要求普通的聚合關係中代表整體的對象負責代表部分的對象的生命週期。Composition(組合關係)是一種強的“擁有”關係,體現了嚴格的部分和整體的關係,部分和整體的生命週期一致。如果AB組成,表現爲A包含有B的全局對象,並且B對象在A創建的時刻創建。


Dependency(依賴關係)表現爲函數中的參數(use a)。是類與類之間的連接,表示一個類依賴於另一個類的定義,其中一個類的變化將影響另外一個類。例如如果A依賴於B,則B體現爲局部變量,方法的參數、或靜態方法的調用。

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