文章目錄
- 1 基本介紹
- 2 說明
- 2.1 繼承
- 2.2 依賴(使用)
- 2.3 聚合
- 2.4 組合
- 3 設計原則核心思想
1 基本介紹
合成複用原則總結起來就一句話:
盡量使用合成/聚合的方式,而不是使用繼承
2 說明
當我們在設計程式的時候,首先考慮的是合成,聚合,組合的方式(這些類會在下一節的UML類圖有介紹),而不是繼承,除非沒有辦法才會用繼承.我們用案例來說明一下:
假如說有兩個類,A類和B類,A類中有一個函數operation1,如果在B類中想用A類的operation1函數,我們會怎麼辦?很多人會想到繼承,讓B類繼承A類.那我們就用類圖來看一下:
2.1 繼承
如果我們隻是讓B去使用A,B繼承A會使耦合性增強.是以我們不推薦使用繼承我們可以使用以下方式.
2.2 依賴(使用)
我們可以使用依賴關系,也就是在B類中需要用到A類的函數形參傳入A類執行個體.
2.3 聚合
或者是在B中添加一個A類屬性,然後通過setter給該屬性指派.該關系稱為聚合.
2.4 組合
也可以在B中添加一個A類屬性使用new 建立A類執行個體.該對象稱為組合.這關系和聚合很相似.但組合在建立B類對象的時候也建立了A類對象.
3 設計原則核心思想
- 找出應用中可能需要變化之處,把它們獨立出來,不要和那些不需要變化的代碼混在一起。
- 針對接口程式設計,而不是針對實作程式設計。
- 為了互動對象之間的松耦合設計而努力