開閉原則:
對擴展開放,對修改關閉。
當應用的需求改變時,在不修改軟件實體的源代碼或者二進制代碼的前提下,可以擴展模塊的功能,使其滿足新的需求。
里氏替換原則:
子類可以擴展父類的功能,但不能改變父類原有的功能。
依賴倒置原則:
高層模塊不應該依賴低層模塊,兩者都應該依賴其抽象;抽象不應該依賴細節,細節應該依賴抽象。
即 降低了客戶與實現模塊之間的耦合。
單一職責原則:
單一職責原則規定一個類應該有且僅有一個引起它變化的原因,否則類應該被拆分。
接口隔離原則:
把不同接口放在不同模塊中。
迪米特法則(最少知識原則):
從依賴者的角度來說,只依賴應該依賴的對象。
從被依賴者的角度說,只暴露應該暴露的方法。
合成複用原則:
儘量使用組合,少用繼承關係複用。
這 7 種設計原則是軟件設計模式必須儘量遵循的原則,各種原則要求的側重點不同。其中,開閉原則是總綱,它告訴我們要對擴展開放,對修改關閉;里氏替換原則告訴我們不要破壞繼承體系;依賴倒置原則告訴我們要面向接口編程;單一職責原則告訴我們實現類要職責單一;接口隔離原則告訴我們在設計接口的時候要精簡單一;迪米特法則告訴我們要降低耦合度;合成複用原則告訴我們要優先使用組合或者聚合關係複用,少用繼承關係複用。