深入理解:設計模式中的七大原則

一、單一原則
概念理解: 1個類只負責一個功能領域中的相應職責,
二、開閉原則(目標)
概念理解: 抽象是開閉原則的關鍵,
怎么做: 面向介面、抽象類機制編程
三、里氏代換原則(基礎)
概念理解: 開閉原則的最重要實作方式之一;所有參考基類的地方必須能透明的使用其子類的物件).
怎么做:
- 1.設計時: 將父類設計為介面或抽象類,讓子類繼承父類或實作父介面---
關鍵技巧點:子類不能重寫父類已經實作的方法 - 2.運行時:盡量將父類定義為抽象類和介面,宣告定義變數盡量使用父類宣告
四、依賴倒轉原則(手段)
概念理解:
- 抽象不應該依賴細節,細節應當依賴抽象
- 針對介面編程,而不是針對實作編程
怎么做:
- 一個實作類,必須對應一個介面或抽象類,方法一樣,子類不能有多余的方法
- 傳遞引數或者關聯關系時,盡量用層次高的抽象層類
- 對第2條具體做法:在 成員型別宣告,引數型別,方法回傳型別,資料型別轉換時,不要用具體類,而是用介面和抽象類來宣告
總結規律:
- 面對抽象編程,肯定會找機會注入具體的子物件,即需要依賴注入
- 依賴注入有三種方式:
- 構造注入
- set值注入
- 介面注入
介面注入:通過實作在介面中宣告的業務方法來傳入具體類的物件,這些物件在定義時使用的是抽象型別,在運行時在傳入具體型別的物件,有子類物件來覆寫父類物件,
五、介面隔離原則
概念理解:
使用多個專門的介面,而不使用單一的總介面,即客戶端不應該依賴那些它不需要的介面,
怎么做:
介面太大時,將他分割成一些更細小的介面,也不能太小,不然介面泛濫,使用起來不方便,一般為某一類用戶定制(業務)的方法.
六、合成復用原則
概念理解:
盡量使用物件組合,而不是繼承來達到復用的目的
七、迪米特法則
概念理解:
- 一個軟體物體應該盡可能少地與其他物體發生相互作用,
- 術語:物件之間通信的幾種朋友關系,
怎么做:
- 類的結構上---每個類的成員變數和成員函式的訪問權限盡量降低,
- 類的設計上---一個類應該盡量設計成不變類,參考其他類時,一個物件對其他物件的參考應當降到最低,
- 物件通信上---減少一些物件之間的通信,如果兩個物件不必直接通信,可以通過第三方轉發呼叫,也就是引入一個合理的第三者來降低現有物件之間的耦合度,
總結: 設計模式的七大原則,
文章參考: 《設計模式的藝術–軟體開發人員的內功修煉之道》

歡迎關注本人微信公眾號,不定時推送相關文章,有任何問題都可以留言討論,希望和大家共同成長,
完
感謝點贊和收藏,轉發請注明文章地址和作者名稱,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/169907.html
標籤:Java
上一篇:設計模式---類之間的關系知多少
