六大設計原則快速記憶SOLID

常見的面向對象設計的原則,能夠簡化爲SOLID原則,堅固slidi的軟件須要遵循的原則。編程

一、單一職責原則SRP(Single Responsibility Principle)函數

定義:不要存在多於一個致使類變動的緣由。通俗的說,即一個類只負責一項職責。spa

二、開放-關閉原則OCP(Open-Close Principle)設計

定義:一個軟件實體如類、模塊和函數應該對擴展開放,對修改關閉。對象

三、里氏替換原則LSP(Liskov Substitution Priciple)接口

通俗的定義:全部引用基類的地方必須能透明地使用其子類的對象。ip

更通俗的定義:子類能夠擴展父類的功能,但不能改變父類原有的功能。 ci

  • 子類能夠實現父類的抽象方法,可是不能覆蓋父類的非抽象方法。部署

  • 子類中能夠增長本身特有的方法。it

  • 當子類覆蓋或實現父類的方法時,方法的前置條件(即方法的形參)要比父類方法的輸入參數更寬鬆。

  • 當子類的方法實現父類的抽象方法時,方法的後置條件(即方法的返回值)要比父類更嚴格。

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

所謂依賴倒置原則(Dependence Inversion Principle)就是要依賴於抽象,不要依賴於具體。簡單的說就是要求對抽象進行編程,不要對實現進行編程,這樣就下降了客戶與實現模塊間的耦合。

模塊間的依賴是經過抽象發生,實現類之間不發生直接的依賴關係,其依賴關係是經過接口或抽象類產生的;

接口或抽象類不依賴於實現類; 實現類依賴接口或抽象類。

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

接口隔離原則(ISP)拆分很是龐大臃腫的接口成爲更小的和更具體的接口,這樣客戶將會只須要知道他們感興趣的方法。這種縮小的接口也被稱爲角色接口(role interfaces)。[2]接口隔離原則(ISP)的目的是系統解開耦合,從而容易重構,更改和從新部署。接口隔離原則是在SOLID (面向對象設計)中五個面向對象設計(OOD)的原則之一,相似於在GRASP (面向對象設計)中的高內聚性。      

使用多個專門的接口比使用單一的總接口要好。

一個類對另一個類的依賴性應當是創建在最小的接口上的。
一個接口表明一個角色,不該當將不一樣的角色都交給一個接口。沒有關係的接口合併在一塊兒,造成一個臃腫的大接口,這是對角色和接口的污染。

六、最少知識原則LKP(Least Knowledge Principle)

迪米特法則(Law of Demeter)又叫做最少知道原則(Least Knowledge Principle 簡寫LKP),就是說一個對象應當對其餘對象有儘量少的瞭解,不和陌生人說話。英文簡寫爲: LoD.

門面模式和調停者模式實際上就是迪米特法則的應用。

廣義的迪米特法則在類的設計上的體現:

優先考慮將一個類設置成不變類。

儘可能下降一個類的訪問權限。

謹慎使用Serializable。

儘可能下降成員的訪問權限。

相關文章
相關標籤/搜索