軟件架構的六大設計原則

軟件設計原則:函數

1.單一職責原則(Single Responsibility Principle)工具

單一職責原則的定義是:There should never be more than one reason for a class to change.」,也就是有且僅有一個緣由引發類的變動。這樣能夠下降類的複雜性,實現什麼職責都有清晰明確的定義;可讀性提升;可維護性提升;變動引發的風險下降。spa


2.里氏替換原則(Liskov Substitution Principle)設計

「龍生龍,鳳生鳳,老鼠生來會打洞。」這個就是咱們常常開發過程當中會用到的繼承。里氏置換原則的定義是:Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it,只要父類能出現的地方子類就能夠出現,並且替換爲子類也不會產生任何錯誤或異常。這樣的話就要求子類必須徹底實現父類的方法;覆蓋或實現父類的方法時輸入參數能夠被放大,輸出結果能夠被縮小(逆變協變)。採用里氏替換原則能夠提升程序的健壯性,版本升級時也能夠保持很是好的兼容性。對象


3.依賴倒置原則(Dependence Inversion Principle)繼承

依賴倒置原則,模塊間的依賴經過抽象發生,實現類之間不發生直接的依賴關係,其依賴關係是經過接口或抽象類產生的;接口或者抽象類不依賴於實現類;實現類依賴與接口或抽象類。須要每一個類儘可能都有接口或者抽象類;變量的表面類型儘可能是接口或者抽象類;任何類都不該該從具體類派生(超過兩層), 儘可能不要複寫基類的方法。採用依賴倒置原則可減小類間的耦合性,提升系統的穩定性,下降並行開發引發的風險,提升代碼可讀性和可維護性。依賴也能夠稱爲注入,通常能夠經過構造函數注入,屬性注入,接口注入。接口


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

接口隔離原則的定義是接口儘可能細化,同時接口中的方法儘可能少。須要一個接口只服務於一個子模塊或者業務邏輯;經過業務邏輯儘可能壓縮接口中的方法;這樣能夠提升內聚,下降耦合,重用代碼。ci


5.迪米特法則(Law of Demeter)開發

迪米特法則,也稱爲最少知識原則,也就是一個對象應該對其餘對象有最少的瞭解。須要只和朋友交流;朋友間也是有距離的;本身的就是本身的;若是一個類放在本類中,既不增長類間的關係,也對本類不產生負面影響,那就放置在本類中。類間解耦,弱耦合。


6.開閉原則(Open Closed Principle)

開閉原則,Software entities like classes, modules and functions should be open for extension but closed for modifications,軟件實體好比類,模塊,和函數應該對拓展開放,對修改關閉,也就是儘可能經過拓展實體行爲來實現變化。須要抽線約束,將相同的變化封裝到一個接口或抽象類,將不一樣的變化封裝到不一樣的接口或抽象類中。其實前面的5個原則都是開閉原則的指導設計工具和方法,開閉原則是他們的精神領袖。

相關文章
相關標籤/搜索