設計模式-六大原則

1、Open Closed Principle(開閉原則)

Software entities should be open for extension,but closed for modification。

軟件實體如模塊、類、函數應對擴展開放,對修改關閉。

這個簡單看來就是說不要去修改原有功能代碼,應該添加代碼去擴展原有功能實現新的需求。

開閉原則可以通過‘抽象約束、封裝變化’來實現,即通過接口或抽象類為軟件實體定義一個抽象層,將相同的可變因素封裝到對應的實現類。

使用開閉原則可以提高代碼的可複用性、可維護性,降低軟件測試的難度。

2、Liskov Substitution Principle(里氏替換原則)

Inheritance should ensure that any property proved about supertype objects also holds for subtype objects。

繼承必須確保超類所擁有的性質在子類中仍然成立。

里氏替換原則主要闡述了有關繼承的一些原則,是繼承複用的基礎,它反映了父類和子類的關係,是對開閉原則的補充,對實現抽象化的具體步驟的規範。

通俗來講就是子類可以擴展父類的功能,但不能改變父類原有的功能。也就是說:子類繼承父類時,除了添加新的方法外,儘量不要重寫父類的方法。

3、Single Responsibility Principle(單一職責原則)

There should never be more than one reason for a class to change。

一個類只負責一項職責,能引起類的變化的只有一個原因。

單一職責原則降低類的複雜度,提高類的可讀性、可維護性,降低變更引起的風險。

4、Interface Segregation Principle(接口隔離原則)

The dependency of one class to another one should depend on the smallest possible interface。

一個類對另一個類的依賴應該建立在最小的接口上。

要為各個類建立它們需要的專用接口,而不要試圖去建立一個很龐大的接口供所有依賴它的類去調用。

5、Dependence Inversion Principle(依賴倒置原則)

High level modules shouldnot depend upon low level modules.Both should depend upon abstractions.Abstractions should not depend upon details. Details should depend upon abstractions。

高層模塊不應該依賴低層模塊,兩者都應該依賴其抽象;抽象不應該依賴細節,細節應該依賴抽象。

依賴倒置原則是實現開閉原則的重要途徑之一,降低了客戶與實現模塊之間的耦合,減少並行開發引起的風險,提高代碼可讀性和可維護性。

6、Demeter Principle(迪米特原則)

Talk only to your immediate friends and not to strangers。

如果兩個軟件實體無須直接通信,那麼就不應當發生直接的相互調用,可以通過第三方轉發該調用,降低類之間的耦合度,提高模塊的相對獨立性。


分享到:


相關文章: