設計模式七大原則 (7)——合成複用原則


一、定義

儘量使用組合/聚合的方式,而不是繼承方式。
在這裏插入圖片描述


二、依賴、聚合、組合介紹

2.1 依賴關係

定義 : 只要在類中用到了對方,那麼它們之間就存在依賴關係。
依賴關係常可以出現在以下地方

  • 類中用到了對象
  • 類的成員變量
  • 方法的返回類型
  • 方法接收的參數類型
  • 方法中使用到

2.2 聚合關係

定義 : 聚合關係表示的是整體和部分的關係,整體和部分可以分開。
例如:一臺電腦由顯示器、鍵盤、鼠標等組成,組成電腦的各個配件是可以從電腦上分離出來的,使用帶菱形的實線來進行表示。
在這裏插入圖片描述

2.3 組合關係

定義 : 組合關係也是整體和部分的關係,但是整體和部分不可分開。
例如:一個人由頭,有自己的身份證。人和身份證可以分開,這是聚合關係;但人和頭是不可以分開的,這就是組合關係。
在這裏插入圖片描述


三、注意事項和細節

  • 找出應用中可能需要變化之處,把它們獨立出來,不要和那些不需要變化的代碼混在一起;
  • 針對接口編程,而不是針對實現編程;
  • 爲了交互對象之間的鬆耦合設計而努力。

參考