設計模式之六大原則
設計模式之六大原則
設計模式之六大原則
開閉原則(Open Close Principle)
- 意思: 軟件模塊應該對擴展開放,對修改關閉。
- 舉例:在程序需要進行新增功能的時候,不能去修改原有的代碼,而是新增代碼,實現一個熱插拔的效果(熱插拔:靈活的去除或添加功能,不影響到原有的功能)。
- 目的:為了使程序的擴展性好,易於維護和升級。
裏氏代換原則(Liskov Substitution Principle)
- 意思:裏氏代換原則是繼承複用的基石,隻有當衍生類可以替換掉基類,軟件單位的功能不受到影響時,基類才能真正被複用,而衍生類也能夠在基類的基礎上增加新的行為。
- 舉例:球類,原本是一種體育用品,它的衍生類有籃球、足球、排球、羽毛球等等,如果衍生類替換了基類的原本方法,如把體育用品改成了食用品(那麼軟件單位的功能受到影響),就不符合裏氏代換原則。
- 目的:對實現抽象化的具體步驟的規範。
依賴倒轉原則(Dependence Inversion Principle)
- 意思:針對接口編程,而不是針對實現編程。
- 舉例:以計算機係統為例,無論主板、CPU、內存、硬件都是在針對接口設計的,如果針對實現來設計,內存就要對應到針對某個品牌的主板,那麼會出現換內存需要把主板也換掉的尷尬。
- 目的:降低模塊間的耦合。
接口隔離原則(Interface Segregation Principle)
- 意思: 使用多個隔離的接口,比使用單個接口要好。
- 舉例:比如:登錄,注冊時屬於用戶模塊的兩個接口,比寫成一個接口好。
- 目的:提高程序設計靈活性。
迪米特法則(最少知道原則)(Demeter Principle)
- 意思:一個實體應當盡量少的與其他實體之間發生相互作用,使得係統功能模塊相對獨立。
- 舉例:一個類公開的public屬性或方法越多,修改時涉及的麵也就越大,變更引起的風險擴散也就越大。
- 目的:降低類之間的耦合,減少對其他類的依賴。
單一職責原則( Single responsibility principle )
基於內聚性原則發展出的。
- 意思:一個類隻負責一個功能領域中的相應職責,或者可以定義為:就一個類而言,應該隻有一個引起它變化的原因。
- 舉例:該原則意思簡單到不需要舉例!
- 目的:類的複雜性降低,可讀性提高,可維護性提高。
高內聚,低耦合?
- 內聚是從功能角度來度量模塊內的聯係,一個好的內聚模塊應當恰好做一件事。它描述的是模塊內的功能聯係;
- 耦合是軟件結構中各模塊之間相互連接的一種度量,耦合強弱取決於模塊間接口的複雜程度、進入或訪問一個模塊的點以及通過接口的數據
學習/設計模式
最後更新:2017-08-14 19:02:20