四人帮 (GoF) 设计模式
《四大设计模式帮》收集了《设计模式:可重用面向对象软件的元素》一书中的 23 种设计模式。
这本书于 1994 年首次出版,是学习设计模式最受欢迎的书籍之一。该书由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 撰写。由于有四位作者,它被昵称为“四人帮设计模式”。此外,它还有一个简称“GoF 设计模式”。
GoF 设计模式类型
GoF 设计模式分为三类:
- 创建型:处理对象创建的设计模式。
- 结构:此类别中的设计模式涉及类结构,例如继承和组合。
- 行为:这种类型的设计模式为对象之间的更好的交互、如何提供松散的耦合以及将来轻松扩展的灵活性提供了解决方案。
创建型设计模式
创建型设计模式类别中有 5 种设计模式。
图案名称 | 描述 |
---|---|
单例 | 单例模式限制类的初始化,以确保只能创建该类的一个实例。 |
工厂 | 工厂模式将实例化对象的责任从类转移到工厂类。 |
抽象工厂 | 允许我们为工厂类创建一个工厂。 |
建造者 | 一步步创建对象以及最终获取对象实例的方法。 |
原型 | 从另一个类似的实例创建一个新的对象实例,然后根据我们的要求进行修改。 |
结构设计模式
《四人帮设计模式》一书中定义了 7 种结构设计模式。
图案名称 | 描述 |
---|---|
适配器 | 在两个不相关的实体之间提供接口,以便它们可以协同工作。 |
合成的 | 当我们必须实现部分-整体层次结构时使用。例如,由圆形、正方形、三角形等其他部分组成的图表。 |
代理人 | 为另一个对象提供代理或占位符来控制对它的访问。 |
蝇量级 | 缓存和重用对象实例,与不可变对象一起使用。例如,字符串池。 |
正面 | 在现有接口上创建包装接口来帮助客户端应用程序。 |
桥 | 桥接设计模式用于将接口与实现分离,并向客户端程序隐藏实现细节。 |
装饰器 | 装饰器设计模式用于在运行时修改对象的功能。 |
行为设计模式
GoF设计模式中定义了11种行为设计模式。
图案名称 | 描述 |
---|---|
模板方法 | 用于创建模板方法存根并将一些实现步骤推迟到子类。 |
调解员 | 用于为系统中的不同对象之间提供集中的通信媒介。 |
责任链 | 用于实现软件设计中的松散耦合,其中来自客户端的请求被传递给对象链以进行处理。 |
观察者 | 当您对对象的状态感兴趣并希望在发生任何变化时收到通知时很有用。 |
战略 | 当我们针对特定任务有多个算法并且客户端决定在运行时使用的实际实现时,使用策略模式。 |
命令 | 命令模式用于在请求-响应模型中实现松耦合。 |
状态 | 当对象根据其内部状态改变其行为时,使用状态设计模式。 |
游客 | 当我们必须对一组相似的对象执行操作时,使用访问者模式。 |
解释器 | 为一种语言定义一种语法表示并提供一个解释器来处理这种语法。 |
迭代器 | 用于提供遍历一组对象的标准方法。 |
纪念 | 当我们想要保存对象的状态以便以后恢复时,就会使用纪念品设计模式。 |
结论
四人帮设计模式为编程中的核心设计模式奠定了基础。在这些模式的基础上,还构建了许多其他设计模式以满足特定需求。