設計模式六大原則

開放封閉原則

所有面向對象設計原則的核心。其核心思想是:類、模塊和函數應該對擴展開放,對修改關閉。對擴展開放,意味着有新的需求或變化時,應該對現有的類、模塊等做擴展,以適應新的情況。對修改關閉,意味着一旦類、模塊等設計完成,就可以獨立完成其工作,而不應嘗試對其做任何修改。

實現開閉原則的基礎:面向抽象編程,而不針對具體實現。抽象相對固定,而具體實現則和實際相關。讓類依賴相對固定的抽象,對外部調用來說,類的修改對外部透明。通過面向對象的繼承、多態機制,可以在抽象或者現有實現類的基礎上,實現新的功能,而不影響現有模塊。

單一職責原則

一個類,只有一個職責,只要專注做好一件事。職責過多,將導致各個職責之間的邏輯互相影響,牽一髮而動全身。

依賴倒置原則

其核心是抽象。高層模塊不依賴與低層具體實現,而依賴於抽象接口。類和模塊,相互之間不可避免的會出現依賴耦合。爲了解耦,最好的方法就是分離接口與實現,即:高層模塊和低層模塊耦合部分抽象成接口,高層模塊調用接口,而低層模塊實現接口。

接口隔離原則

使用多個小的職責單一的接口,而不要使用一個大的多個職責的接口。也就是說,接口也應該是內聚的,一個類對另一個類的依賴,應該建立在最小接口上,而不要強制加入不需要的接口方法。

里氏替換原則

核心思想是子類可以擴展父類的方法,但是不能修改父類的原有功能。它包含以下四層含義:子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法;子類可以增加自己的特有方法;子類重載父類方法時,子類方法形參可以比父類更寬鬆;子類實現父類抽象方法時,返回值要比父類更嚴格。這就要求我們面向接口編程,將公共部分抽象爲基類接口或抽象類,在子類中通過覆寫父類的方法實現新的方式支持同樣的職責。

迪米特法則

又叫最少知道原則,就是一個類對自己所依賴的類知道的越少越好。對於被依賴的類,無論邏輯多麼複雜,都必須將這些細節封裝在內部,除了public方法之外,不對外泄露任何信息。其初衷是降低類之間的耦合,由於每個類都減少了不必要的依賴,因此的確可以降低耦合關係。但是凡事都有度,雖然可以避免與非直接的類通信,但是要通信,必然會通過一個“中介”來發生聯繫。過分遵守迪米特法則,可能導致出現大量的中介類,導致系統難度變大。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章