00_设计模式6大原则
轉載自https://www.cnblogs.com/HigginCui/p/6195318.html
【六大原則總覽】
1.單一職責原則
2.里氏替換原則
3.依賴導致原則
4.接口隔離原則
5.迪米特法則
6.開閉原則
?
【原則一:單一職責原則】
英文全稱:Single Responsibility Principle,簡稱SRP。
要求一個接口或類只有一個原因引起變化,就是一個接口或類只有一個原則,它就負責一件事情。
[ 好處 ]?
* 類的復雜性降低,實現什么職責都有清晰明確的定義;
* 可讀性提高,復雜性降低。
* 可維護性提高。
* 變更引起的風險降低。如果接口的定義職責做的很好,一個接口修改只對相應的實現類有影響,對其它接口沒有影響,這對系統的擴展性和可維護性非常大的幫助。
?
?
【原則二:里氏替換原則】
首先分析一下繼承的優點缺點;
[ 繼承的優點 ]
* 代碼共享,減少創建類的工作量,每個子類都擁有父類的方法和屬性。
* 提高了代碼的重用性。
* 子類可以形似父類,但又異于父類。
* 提高代碼的擴展性,許多開源框架的擴展接口都是通過繼承父類來完成的。
* 提高產品或項目的開放性。
[ 繼承的缺點 ]
* 繼承是侵入性的。只要繼承,子類就必須擁有父類的所有屬性和方法。
* 降低代碼的靈活性,子類必須擁有父類的屬性和方法,給子類添加了約束。
* 增強了代碼的耦合性,當父類的常量、變量或方法修改時,就要考慮子類的修改。
[ 里氏替換原則的定義 ]
只要父類能出現的地方,子類就可以出現,而且替換給子類就不會出現任何的錯誤或異常,使用者不需要知道是子類還是父類,但是反過來是不可以的,有子類出現的地方,父類未必就可以。
[ 里氏替換原則的四層含義 ]
* 子類必須實現父類的方法。
* 子類必須有自己的個性
* 覆蓋或實現或父類的方法時輸入參數可以被放大。
* 覆寫或實現父類的方法時輸出結果可以被縮小。
?
【原則三:依賴倒置原則】
[ 在java語言中的表現 ]?
* 模塊間的依賴通過抽象發生,實現類之間不發生直接的依賴關系,其依賴關系通過接口或抽象類產生。
* 接口或抽象類不依賴其實現類。
* 實現類依賴接口或抽象類。
?
【原則四:接口隔離原則】
接口隔離原則要求接口中的方法盡量少。(單一職責要求類和接口職責單一,注重的是職責,是業務邏輯上的劃分)
?
【原則五:迪米特法則】
也稱為最少知識原則,一個對象應該對其它對象由最少的了解,即一個類應該對自己需要耦合或調用的類知道的最少。
?
【原則六:開閉原則】
軟件實體,應該對擴展開放,對修改關閉,含義就是一個原件實體應該通過擴展來實現變化,而不是通過修改已有的代碼來實現變化。
總結
以上是生活随笔為你收集整理的00_设计模式6大原则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 极光推送经验之谈-Java后台服务器实现
- 下一篇: 数据库四种设计模式