關聯關系【association】(企鵝知道氣候)
關聯關系是使用實例變量來實現的
class Penguin:Bird { private Climate climate; }
聚合關系【aggregation】(在大雁群類中有大雁數組對象)
在代碼層面聚合與關聯是一致的,只能從語義上來區分。
class WideGooseAggregate//大雁群類 { private WideGoose[] arrayWideGoose;//大雁數組 }
組合(合成)關系【composition】(翅膀組合成鳥)
體現在代碼層面與關聯時一致的,只能從語義來區分
class Bird { private Wing wing; public Bird() { wing=new Wing(); } }
依賴關系【dependency】(動物的新陳代謝需要水和氧氣)
依賴表現為:局部變量,方法中的參數和對靜態方法的調用。
class Animal { public Metabolism(Oxygen oxygen,Water water) { //新城代謝代碼 } }
類和類之間的繼承關系(鳥繼承於動物)
類和接口間的實現關系(大雁實現了飛翔接口)
主要是關聯關系的細化需要注意強弱,由若到強分別是 依賴 < 關聯 < 聚合 < 組合
參考文章:https://www.cnblogs.com/jiyuqi/p/4571543.html
參考書籍:《大話設計模式》