鄉下人設計模式——SOLID之六大原則
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之六大原則