1. 程式人生 > >面向物件GOF23種設計模式綜述

面向物件GOF23種設計模式綜述

一、什麼是設計模式

       設計模式,是一套被反覆使用、多數人知曉的、經過分類編目的、程式碼設計經驗的總結。使用設計模式是為了可重用程式碼、讓程式碼更容易被他人理解、保證程式碼可靠性、程式的重用性。

       設計模式其實就是開發過程中常見問題的解決方案,是解決問題的思路。學習設計模式能更優雅的解決面向對程式開發設計問題。

 

二、設計模式分類

建立型模式,關注物件的建立

  • Singleton(單例)
  • Factory Method(工廠方法)
  • Abstract Factory (抽象工廠)
  • Builder(建造者)
  • Prototype(原型模式)

結構型模式,關注類與物件之間的組合

  • Adapter(介面卡)
  • Bridge(橋接)
  • Composite(組合)
  • Decorator(裝飾器)
  • Facade(外觀)
  • Flyweight(享元)
  • Proxy(代理)

 

行為型模式,關注物件和行為的分離

  • Interpreter(直譯器)
  • Template Method(模板方法)
  • Chain of Responsibility(責任鏈)
  •  Command(命令)
  • Iterator(迭代器)
  • Mediator(中介者)
  • Memento(備忘錄)
  • Observer(觀察者)
  • State(狀態)
  • Strategy(策略)
  • Visitor(訪問者)

三、設計模式

  • 單一原則:一個類只負責一 項職責
  • 開閉原則:對擴充套件開放,對修改關閉,能擴充套件不修改
  • 里氏替換原則:子類可以擴充套件父類的功能,但不能改變原有父類的功能。儘量用子類替換父類
  • 依賴倒置原則:抽象不應該依賴於細節,細節應當依賴於抽象,面向介面程式設計
  • 介面隔離:使用多個專門的介面,而不使用單一的總介面。即 客戶端不應該依賴於那些它不需要的介面。
  • 迪米特原則:最少知道原則,儘量降低類與類之間的耦合;一個物件應該對其他物件有最少的瞭解

&n