1. 程式人生 > >設計模式學習之設計模式六原則(一)

設計模式學習之設計模式六原則(一)

設計模式是一個程式設計師必備的知識,學習設計模式之前,先了解一下設計模式的六大原則,通俗易懂的講解。

設計模式之總則:

開閉原則,對擴充套件開放,對修改關閉。就好比一臺電腦,你需要插拔u盤,鍵盤,滑鼠是很方便,但是你想去修改電腦內的硬體是很困難的。這樣做的好處在於提高電腦的可擴充套件,可維護,靈活行,程式碼也是相同的道理。要注意的是:1.通過介面或者抽象類約束擴充套件,對擴充套件進行邊界限定,不允許出現介面或者抽線類中不存在的public方法。2.引數型別,引用物件儘量使用介面或者抽線類,而不用實現類。這一點做過mvc開發的程式設計師應該深有體會,比如在controller宣告的service層,都是宣告的介面類。2.抽象層儘量保持穩定,一旦確定就不要修改。

一、單一職責原則

每個類應該職責單一,引起它變化的原因應該只有一個。不然應該將其分離。

其作用就是減少程式碼得耦合,也是和電腦得原理一樣,cup就是cup,記憶體是記憶體,硬碟是硬碟,不要把cup和記憶體繫結在一起。不然不管是記憶體壞了,還是硬碟壞了,你都需要兩個一起更換,把記憶體和硬碟分開得好處是:你記憶體壞了只需要管記憶體,而不需要去考慮cup等。這樣的設計可提高程式碼的健壯性。

 二、依賴倒置原則

程式要依賴介面,不要依賴具體的實現類。

高層模組不應該依賴於底層模組,兩個都應該抽象。

 三、迪米特法則(最少知道原則,知道得越少活得越久)

一個實體應該儘可能少的與其它實體發生相互作用。簡單地說就是儘量做一個宅男,儘可能地不要和外界接觸,要接觸也要通過朋友來接觸,這樣的好處就是淡化你和外界之間的聯絡,當外界變化的時候,對你的影響最少。

 

四、介面隔離原則

類之間的依賴應建立在最小的介面上,就是不要出現臃腫的介面,但是小還是有個限度,就是不能違法單一職責原則。

五、合成聚和原則

           儘量使用合成/聚合,儘量不要使用繼承。

六、里氏替換原則

       其基類可以的出現的類,其子類一定可以出現。比如jave類的老祖宗Object,如果你定義的是Object型別的引數,那麼所有型別的引數都是能用的。