四人帮 (GoF) 设计模式

四种设计模式的组合是来自《设计模式:面向对象软件的元素》一书中的23种设计模式的集合。

四种设计模式的帮派Book

这本书于1994年首次出版,是学习设计模式的最受欢迎的书籍之一。这本书的作者是埃里希·伽马、理查德·赫尔姆、拉尔夫·约翰逊和约翰·弗利塞德。因为有四位作者,它被戏称为四种设计模式的帮派。此外,它还有一个更短的名字,叫做GoF设计模式

GoF设计模式类型

GoF设计模式分为三类:

  1. Creational :处理对象创建的设计模式。
  2. Structural :该类设计模式涉及类的结构,如继承、组合等。
  3. 行为 :这类设计模式为对象之间更好的交互、如何提供低耦合以及将来易于扩展的灵活性提供了解决方案。

创意设计模式

在创造性设计模式类别中有5种设计模式。

| 图案名|描述| | - -|- -| | [Singleton](/community/tutorials/java-singleton-design-pattern-best-practices-examples)|单例模式限制类的初始化,以确保只能创建类的一个实例。| | [Factory](/community/tutorials/factory-design-pattern-in-java)|工厂模式承担了将对象从类实例化到工厂类的责任。| | [Abstract Factory](/community/tutorials/abstract-factory-design-pattern-in-java)|允许我们为工厂类创建一个工厂。| | [Builder](/community/tutorials/builder-design-pattern-in-java)|一步一步地创建一个对象和一个方法来最终获得对象实例。| | [Prototype](/community/tutorials/prototype-design-pattern-in-java)|从另一个类似的实例创建一个新的对象实例,然后根据我们的要求进行修改。|

结构化设计模式

在《四种设计模式的帮派》一书中定义了7种结构设计模式。

模式名称|描述 -| |Adapter|提供两个互不相关的实体之间的接口,以便它们可以协同工作。| |Composite|当必须实现部分-整体层次结构时使用。例如,由圆形、正方形、三角形等其他部分组成的图表| |Proxy|为另一个对象提供代理或占位符,以控制对其的访问。| |Flyweight|对象实例的缓存和重用,与不可变对象一起使用。例如,字符串池。| |Facade|在已有接口之上创建包装器接口,帮助客户端应用程序。| |Bridge|桥设计模式用于将接口与实现解耦,并对客户端程序隐藏实现细节。| |Decorator|装饰器设计模式用于在运行时修改对象的功能。|

行为设计模式

GoF设计模式中定义了11种行为设计模式。

模式名称|描述 -| |模板Method|用于创建模板方法存根,并将部分实现步骤留待子类完成。| |Mediator|用于提供系统内不同对象之间的集中通信媒介。| |Chain of Responsibility]|用于在软件设计中实现松耦合,将来自客户端的请求传递给对象链进行处理。| |Observer|当您对对象的状态感兴趣,并且希望在发生变化时得到通知时,这是非常有用的。| |Strategy|当一个特定的任务有多个算法,客户端决定运行时使用的实际实现时,使用策略模式。| |Command|命令模式用于在请求-响应模型中实现松耦合。| |State|当对象根据其内部状态改变行为时,使用状态设计模式。| |Visitor|当我们必须对一组相似类型的对象进行操作时,使用访问者模式。| |Interpreter|定义一种语言的语法表示,并提供一个解释器来处理该语法。| |Iterator|用于提供一组对象的标准遍历方式。| |Memento|当我们想要保存对象的状态以便以后恢复时,可以使用Mememto设计模式。|

结论

四种设计模式的组合奠定了编程中核心设计模式的基础。对于特定的需求,在这些模式的基础上构建了许多其他设计模式。

Published At
Categories with 技术
comments powered by Disqus