1. 程式人生 > >1.設計模式入門

1.設計模式入門

prot 針對 面向 comm 理解 給定 發生 中介 這也

1. 設計模式定義

設計模式是一套被反復使用的、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。毫無疑問,設計模式於己於他人於系統都是多贏的,設計模式使代碼編制真正工程化,設計模式是軟件工程的基石,如同大廈的一塊塊磚石一樣。項目中合理地運用設計模式可以完美地解決很多問題,每種模式在現實中都有相應的原理來與之對應,每種模式都描述了一個在我們周圍不斷重復發生的問題,以及該問題的核心解決方案,這也是設計模式能被廣泛應用的原因。

什麽是 GOF(四人幫,全拼 Gang of Four)?

在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名為 Design Patterns - Elements of Reusable Object-Oriented Software(中文譯名:設計模式 - 可復用的面向對象軟件元素) 的書,該書首次提到了軟件開發中設計模式的概念。

四位作者合稱 GOF(四人幫,全拼 Gang of Four)。他們所提出的設計模式主要是基於以下的面向對象設計原則。

  • 對接口編程而不是對實現編程。
  • 優先使用對象組合而不是繼承。
設計模式的類型

總共有 23 種設計模式。這些模式可以分為三大類:創建型模式(Creational Patterns)、結構型模式(Structural Patterns)、行為型模式(Behavioral Patterns)。

創建型模式

這些設計模式提供了一種在創建對象的同時隱藏創建邏輯的方式,而不是使用 new 運算符直接實例化對象。這使得程序在判斷針對某個給定實例需要創建哪些對象時更加靈活。

  1. 工廠模式(Factory Pattern)
  2. 抽象工廠模式(Abstract Factory Pattern)
  3. 單例模式(Singleton Pattern)
  4. 建造者模式(Builder Pattern)
  5. 原型模式(Prototype Pattern)
結構型模式

這些設計模式關註類和對象的組合。繼承的概念被用來組合接口和定義組合對象獲得新功能的方式。

  1. 適配器模式(Adapter Pattern)
  2. 橋接模式(Bridge Pattern)
  3. 過濾器模式(Filter、Criteria Pattern)
  4. 組合模式(Composite Pattern)
  5. 裝飾器模式(Decorator Pattern)
  6. 外觀模式(Facade Pattern)
  7. 享元模式(Flyweight Pattern)
  8. 代理模式(Proxy Pattern)
行為型模式

這些設計模式特別關註對象之間的通信。

  1. 責任鏈模式(Chain of Responsibility Pattern)
  2. 命令模式(Command Pattern)
  3. 解釋器模式(Interpreter Pattern)
  4. 叠代器模式(Iterator Pattern)
  5. 中介者模式(Mediator Pattern)
  6. 備忘錄模式(Memento Pattern)
  7. 觀察者模式(Observer Pattern)
  8. 狀態模式(State Pattern)
  9. 空對象模式(Null Object Pattern)
  10. 策略模式(Strategy Pattern)
  11. 模板模式(Template Pattern)
  12. 訪問者模式(Visitor Pattern)

總結
  • 創建型模式-->對象怎麽來
  • 結構型模式-->對象和誰有關
  • 行為型模式-->對象與對象在幹嘛

1.設計模式入門