深入理解:設計模式中的七大原則 一、單一原則 概念理解: 1個類只負責一個功能領域中的相應職責。 二、開閉原則(目標) 概念理解: 抽象是開閉原則的關鍵。 怎麼做: 面向介面、抽象類機制編程 三、里氏代換原則(基礎) 概念理解: 開閉原則的最重要實現方式之一;所有引用基類的地方必須能透明的使用其子類 ...
深入理解:設計模式中的七大原則
一、單一原則
概念理解: 1個類只負責一個功能領域中的相應職責。
二、開閉原則(目標)
概念理解
: 抽象是開閉原則的關鍵。
怎麼做
: 面向介面、抽象類機制編程
三、里氏代換原則(基礎)
概念理解
: 開閉原則的最重要實現方式之一;所有引用基類的地方必須能透明的使用其子類的對象).
怎麼做
:
- 1.設計時: 將父類設計為介面或抽象類,讓子類繼承父類或實現父介面---
關鍵技巧點:子類不能重寫父類已經實現的方法
- 2.運行時:儘量將父類定義為抽象類和介面,聲明定義變數儘量使用父類聲明
四、依賴倒轉原則(手段)
概念理解
:
- 抽象不應該依賴細節,細節應當依賴抽象
- 針對介面編程,而不是針對實現編程
怎麼做
:
- 一個實現類,必須對應一個介面或抽象類,方法一樣,子類不能有多餘的方法
- 傳遞參數或者關聯關係時,儘量用層次高的抽象層類
- 對第2條具體做法:在 成員類型聲明,參數類型,方法返回類型,數據類型轉換時,不要用具體類,而是用介面和抽象類來聲明
總結規律
:
- 面對抽象編程,肯定會找機會註入具體的子對象,即需要依賴註入
- 依賴註入有三種方式:
- 構造註入
- set值註入
- 介面註入
介面註入:通過實現在介面中聲明的業務方法來傳入具體類的對象。這些對象在定義時使用的是抽象類型,在運行時在傳入具體類型的對象,有子類對象來覆蓋父類對象。
五、介面隔離原則
概念理解
:
使用多個專門的介面,而不使用單一的總介面,即客戶端不應該依賴那些它不需要的介面。
怎麼做
:
介面太大時,將他分割成一些更細小的介面,也不能太小,不然介面泛濫,使用起來不方便,一般為某一類用戶定製(業務)的方法.
六、合成復用原則
概念理解
:
儘量使用對象組合,而不是繼承來達到復用的目的
七、迪米特法則
概念理解
:
- 一個軟體實體應該儘可能少地與其他實體發生相互作用。
- 術語:對象之間通信的幾種朋友關係。
怎麼做
:
- 類的結構上---每個類的成員變數和成員函數的訪問許可權儘量降低。
- 類的設計上---一個類應該儘量設計成不變類,引用其他類時,一個對象對其他對象的引用應當降到最低。
- 對象通信上---減少一些對象之間的通信,如果兩個對象不必直接通信,可以通過第三方轉發調用,也就是引入一個合理的第三者來降低現有對象之間的耦合度。
總結: 設計模式的七大原則。
文章參考: 《設計模式的藝術–軟體開發人員的內功修煉之道》
歡迎關註本人微信公眾號,不定時推送相關文章,有任何問題都可以留言討論,希望和大家共同成長。
完
感謝點贊和收藏,轉發請註明文章地址和作者名稱。