2設計模式基本原則

最終目的:高內聚,低耦合編程

1)  開放封閉原則  (OCP,Open For Extension, Closed For Modification Principle)3d

類的改動是經過增長代碼進行的,而不是修改源代碼。對象

2)  單一職責原則  (SRP,Single Responsibility Principle)blog

類的職責要單一,對外只提供一種功能,而引發類變化的緣由都應該只有一個。繼承

3)   依賴倒置原則 (DIP,Dependence Inversion Principle)接口

依賴於抽象(接口),不要依賴具體的實現(類),也就是針對接口編程。ip

4)   接口隔離原則 (ISP,Interface Segegation Principle)ci

不該該強迫客戶的程序依賴他們不須要的接口方法。一個接口應該只提供一種對外功能,不該該把全部操做都封裝到一個接口中去。虛擬機

5)   里氏替換原則 (LSP, Liskov Substitution Principle)it

        任何抽象類出現的地方均可以用他的實現類進行替換。實際就是虛擬機制,語言級別實現面向對象功能。

6)   優先使用組合而不是繼承原則(CARP,Composite/Aggregate Reuse Principle)

若是使用繼承,會致使父類的任何變換均可能影響到子類的行爲。

若是使用對象組合,就下降了這種依賴關係。

7)  迪米特法則(LOD,Law of Demeter)

一個對象應當對其餘對象儘量少的瞭解,從而下降各個對象之間的耦合,提升系統的可維護性。例如在一個程序中,各個模塊之間相互調用時,一般會提供一個統一的接口來實現。這樣其餘模塊不須要了解另一個模塊的內部實現細節,這樣當一個模塊內部的實現發生改變時,不會影響其餘模塊的使用。(黑盒原理)

 

案例圖

開閉原則案例

 

 

依賴倒轉

1)

 

2)

 

 

迪米特法則

1)和陌生人說話

2)不和陌生人說話

3) 與依賴倒轉原則結合 某人和 抽象陌生人說話  讓某人和陌生人進行解耦合

 

相關文章
相關標籤/搜索