1. 程式人生 > >鄉下人設計模式——SOLID之六大原則

鄉下人設計模式——SOLID之六大原則

res 展開 更新 我們 chang 可擴展 模式 之間 六大原則

  S(Single Responsibility Principle):單一責任原則

  O(Open Closed Principle):開放封閉原則

  L(Liskov Substitution Principle):裏氏替換原則

  L(Law of Demeter):迪米特法則

  I(Interface Segregation Principle):接口分離原則

  D(Dependence Inversion Principle):依賴倒置原則

單一責任原則:
當需要修改某個類的時候原因有且只有一個(THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE)。換句話說就是讓一個類只做一種類型責任,當這個類需要承當其他類型的責任的時候,就需要分解這個類。 就是一個類只負責一個職責

開放封閉原則
軟件實體應該是可擴展,而不可修改的。也就是說,對擴展是開放的,而對修改是封閉的。這個原則是諸多面向對象編程原則中最抽象,開閉原則中的對擴展開放,如果在項目中添加一個功能的時候,可以直接對代碼進行擴展。如果要修改某一部分的功能時,我們應該做的是,盡量少做修改(完全不修改是不可能的),但是修改的時候,要保留原來的功能,只是在上面擴展出新的功能,就像版本更新一樣,更新後,依然支持舊版本。

裏氏替換原則
當一個子類的實例應該能夠替換任何其超類的實例時,它們之間才具有is-A關系

迪米特原則

迪米特法則也叫最少知道原則(Least Knowledge Principle, LKP ),雖然名稱不同,但都是同一個意思:一個對象應該對其他對象有最少的了解,比如:我們在寫一個類的時候,應該盡可能的少暴露自己的接口。在寫類的時候,能不 public 就不 public ,所有暴露的屬性或是接口,都是不得不暴露的,這樣的話,就能保證其他類對這個類有最少的了解了。

依賴倒置原則
1. 高層模塊不應該依賴於低層模塊,二者都應該依賴於抽象
2. 抽象不應該依賴於細節

3. 細節應該依賴於抽象

我們要盡可能使用接口或抽象類。也就是“面向接口編程” 或者說 “面向抽象編程” ,也就是說程序中要盡可能使用抽象類或是接口,任何類都不應該從具體類中派生

接口分離原則
不能強迫用戶去依賴那些他們不使用的接口。使用多個專門的接口比使用單一的總接口總要好。客戶端不應該依賴它不需要的接口,類間的依賴關系應該建立在最小的接口上。單一職責原則是按照 職責進行劃分接口的,而接口隔離原則則是按照實現類對方法的使用來劃分的

鄉下人設計模式——SOLID之六大原則