軟件設計的幾大原則彙總

軟件設計的幾大原則彙總

軟件設計的幾大原則

單一職責原則

單一職責原則:英文為Single Responsibility Principle(SRP),這個原則要求我們在設計類或者接口的時候。尤其在設計接口的時候把職責分清楚,通常一個職責不是單一的方法,是一類方法的組合。

在開發的時候很難做到單一,我們在接口設計時一定做單單一,在類的設計時儘量做到單一原因引起變化。

依賴倒置原則

依賴倒置原則:High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions. 大概的意思為高層模塊不應該依賴底層模塊,他們都應該依賴抽象。抽象不能依賴細節。細節應該依賴抽象。

這個原則要求設計的時候儘量用抽象(抽象類或者接口)把各個模塊獨立開來,實現解耦,使各模塊相對獨立。

這個原則簡單來說就是要用面向接口設計

接口隔離原則

接口隔離原則(Interface Segregation Principle, ISP),說到接口,其實分兩種,分別為類實例接口(Object interface)和類接口(Class interface)。這個原則依賴建立在最小的接口之上,依賴自己需要的接口。

迪米特法則

迪米特法則:Law of Demetter(LoD),也稱為最少知識原則。就是一個對象應該對其他對象有最少的瞭解。這個法則的本質就是解耦,解耦是有限度的不能為了解耦而解耦。

里氏替換原則

里氏替換原則:Functions that use references to base classes must be able to use objects of the derived class without knowing it.(所有引用基類的地方,都能透明的使用其子類的對象)

簡單來說就是父類出現的地方,替換為子類不會產出異常。

里氏替換原則的好處就是增強程序的健壯性,保持程序的兼容性。

開閉原則

開閉原則:Software entities like classes, modules and functions should be open for extendsion but closeed for modifications. 意思是說軟件的實體如類,模塊和函數應該對擴展開發,對修改關閉。

這個原則要求我們設計的系統擴展性好,因為需要不會一直不變的,我們需要應對的永遠是變化。

這6個原則是建立穩定的,靈活和健壯設計的基礎,這些都只是是原則,設計的時候還要根據實際情況考慮。


分享到:


相關文章: