設計模式 Design Pattern
設計模式系列文章列表整理自《Design Patterns: Elements of Reusable Object-Oriented Software》(1994)由四人幫(Gang of Four,GoF)撰寫的設計模式,也被稱為「四人幫設計模式」(Gang of Four design patterns)。
設計模式依據使用對象、情境…等,可以區分成三大類(創建型、結構型、行為型)一共有23個模式。
- 創建型模式|Creational Patterns
- 抽象工廠(Abstract factory)
- 生成器(Builder)
- 工廠方法(Factory method)
- 原型(Prototype),實作Clone方法,分為深/淺層複製。
- 單例(Singleton),應用static讓物件只會有一個實體。
- 結構型模式|Structural Patterns
- 配接器(Adapter),Wrapper,常用於包裝已定型的類別。自訂介面來包裝外部(第三方)函式庫。
- 橋接(Bridge),使用介面將方法從基底分離,並作為共用方法介面。實作時橋接到物件上,可使不同基底的物件擁有共同方法。
- 組合(Composite),將物件組合成樹狀的結構,有分為Composite、Leaf,兩者差別再Composite多了容器的功能。
- 修飾(Decorator),Wrapper,常用於包裝已定型的類別。包裝應用的函示成裝飾器物件,可以不限制地對同一物件重複裝飾。
- 外觀(Facade),將多個物件的封裝成新物件,並提供整合後的方法,讓使用者方便使用之外,也不需要在意內部的運作。
- 享元(Flyweight)
- 代理(Proxy)
- 行為型模式|Behavioral Patterns
- 責任鏈(Chain of Responsibility),可自訂訪問順序的模式。
- 命令(Command),將處理指令物件化,可搭配命令池緩衝做排程處理。
- 解譯器(Interpreter)
- 迭代器(Iterator)
- 中介者(Mediator)
- 備忘錄(Memento)
- 觀察者(Observer)
- 狀態(State),將狀態的行為物件化,透過給狀態物件來變換行為。是策略模式的變化。
- 策略(Strategy),將行為物件化,透過給予新策略物件來變換行為。
- 模板(Template method)
- 訪問者(Visitor)