GoF是《设计模式-可复用面向对象软件的基础》一书的作者——四人组的简称。《设计模式》一书中收录了23种设计模式。
这23种设计模式基本涵盖了面向对象的所有设计模式,但是并未包含如并发、分布式、实时程序等特定应用的设计模式。四人组将这23种设计模式分为创建型、行为型、结构型三类。
GoF对设计模式的定义:是对用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。
创建型
涉及对象实例化。这类模式都提供一个方法,将客户从所需要实例化的对象中解耦。
- Singleton(单例模式)
- Factory Method(工厂方法)
- Abstract Factory(抽象工厂)
- Builder(建造者模式)
- Prototype(原型模式)
行为型
涉及到类和对象如何交互分配职责
- Template Method(模板方法)
- Iterator(迭代器模式)
- Command(命令模式)
- Observer(观察者模式)
- State(状态模式)
- Strategy(策略模式)
- Mediator(中介者模式)
- Visitor(访问者模式)
- Memento(备忘录模式)
- Chain of Responsibility(责任链模式)
结构型
将类或对象组合到更大的结构中
- Decorator(装饰模式)
- Proxy(代理模式)
- Adapter(适配器模式)
- Composite(组合模式)
- Facade(外观模式)
- Fly Weight(享元模式)
- Bridge(桥接模式)