閱讀455 返回首頁    go 阿裏雲 go 技術社區[雲棲]


設計模式之六大原則

設計模式之六大原則

設計模式之六大原則

開閉原則(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

  上一篇:go  怎麼去定義產品經理——匯新雲
  下一篇:go  傳感器搭上基於雲的連續監控方案解決傳統資產監控的混亂局麵