設計原則
設計要講究平衡,需考慮人力、時間、成本、質量、業務擴展性等方面,需取捨,找到適合的業務場景,並非完全遵守,完全套用
開閉原則(所有原則的基礎)
定義:一個軟件實體如類、模版和函數應該對擴展開放,對改變關閉。強調的是:用抽象構建框架,用實現擴展細節。面向抽象編程。 優點:提高軟件系統的可複用性及可維護性
繼承的方式實現。越底層,修改風險越大;儘量修改偏業務,偏上層的實現代碼。
依賴倒置原則
定義:高層模塊不應該依賴低層模塊,二者都應該依賴其抽象
抽象不應該依賴細節;細節應該依賴抽象
針對接口編程,不要針對實現編程
優點:可以減少類間的耦合性、提高系統穩定性、提高代碼可讀性和可維護性、可降低修改程序所造成的的風險接口、抽象類等形式
單一職責原則
定義:不要存在多於一個導致類變更的原因
一個類(看情況)、接口、方法只負責一項職責
優點:降低類的複雜度、提高類的可讀性、提高系統的可維護性、降低變更引起的風險
接口隔離原則
定義:用多個專門的接口,而不使用單一的總接口,客戶端不應該依賴它不需要的接口注意點: 一個類對一個類的依賴應該建立在最小的接口上
建立單一接口,而不是建立龐大臃腫的接口
儘量細化接口,接口中的方法儘量少
注意適度原則,一定要適度。(完全遵守,可能會造成類的爆炸)
優點:符合我們常說的高內聚低耦合的設計思想,從而使得類具有很好的可讀性、可擴展性和可維護性
迪米特原則(最少知道原則)
定義:一個對象應該對其他對象保持最少的瞭解。又叫最少知道原則
儘量降低類與類之間的耦合
優點:降低類之間的耦合
強調只和朋友交流,不和陌生人說話朋友:出現在成員變量、方法的輸入、輸出參數中的類稱爲成員朋友類,而出現在方法體內部的類不屬於朋友類