关于设计模式:GoF的23种设计模式

42次阅读

共计 1564 个字符,预计需要花费 4 分钟才能阅读完成。

GoF 的 23 种设计模式

GoF 在其设计模式一书中次要介绍了 23 种设计模式,依据模式的实现什么工作来划分能够把设计模式分为三大类创立型模式、结构型模式和行为模式

1、创立型模式:用于形容怎么创建对象,特点“将对象的创立与应用拆散”。单例、原型、工厂办法、形象工厂、建造者等都属于创立型模式

2、结构型模式:用于形容如何将类或对象按某种布局组成更大的构造。代理、适配器、桥接、装璜、外观、享元、组合等 7 种为构造模式。

3、行为型模式:形容类或对象之间怎么相互协作共同完成单个对象都无奈独自实现的工作,以及怎么调配职责。模板办法、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录、解析器等 11 种为行为型模式。

  1. 单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局拜访点供内部获取该实例,其拓展是无限多例模式。
  2. 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型相似的新实例。
  3. 工厂办法(Factory Method)模式:定义一个用于创立产品的接口,由子类决定生产什么产品。
  4. 形象工厂(AbstractFactory)模式:提供一个创立产品族的接口,其每个子类能够生产一系列相干的产品。
  5. 建造者(Builder)模式:将一个简单对象分解成多个绝对简略的局部,而后依据不同须要别离创立它们,最初构建成该简单对象。
  6. 代理(Proxy)模式:为某对象提供一种代理以管制对该对象的拜访。即客户端通过代理间接地拜访该对象,从而限度、加强或批改该对象的一些个性。
  7. 适配器(Adapter)模式:将一个类的接口转换成客户心愿的另外一个接口,使得本来因为接口不兼容而不能一起工作的那些类能一起工作。
  8. 桥接(Bridge)模式:将形象与实现拆散,使它们能够独立变动。它是用组合关系代替继承关系来实现,从而升高了形象和实现这两个可变维度的耦合度。
  9. 装璜(Decorator)模式:动静的给对象减少一些职责,即减少其额定的性能。
  10. 外观(Facade)模式:为多个简单的子系统提供一个统一的接口,使这些子系统更加容易被拜访。
  11. 享元(Flyweight)模式:使用共享技术来无效地反对大量细粒度对象的复用。
  12. 组合(Composite)模式:将对象组合成树状层次结构,使用户对单个对象和组合对象具备统一的拜访性。
  13. 模板办法(TemplateMethod)模式:定义一个操作中的算法骨架,而将算法的一些步骤提早到子类中,使得子类能够不扭转该算法构造的状况下重定义该算法的某些特定步骤。
  14. 策略(Strategy)模式:定义了一系列算法,并将每个算法封装起来,使它们能够互相替换,且算法的扭转不会影响应用算法的客户。
  15. 命令(Command)模式:将一个申请封装为一个对象,使发出请求的责任和执行申请的责任宰割开。
  16. 职责链(Chain of Responsibility)模式:把申请从链中的一个对象传到下一个对象,直到申请被响应为止。通过这种形式去除对象之间的耦合。
  17. 状态(State)模式:容许一个对象在其外部状态产生扭转时扭转其行为能力。
  18. 观察者(Observer)模式:多个对象间存在一对多关系,当一个对象产生扭转时,把这种扭转告诉给其余多个对象,从而影响其余对象的行为。
  19. 中介者(Mediator)模式:定义一个中介对象来简化原有对象之间的交互关系,升高零碎中对象间的耦合度,使原有对象之间不用相互了解。
  20. 迭代器(Iterator)模式:提供一种办法来程序拜访聚合对象中的一系列数据,而不裸露聚合对象的外部示意。
  21. 访问者(Visitor)模式:在不扭转汇合元素的前提下,为一个汇合中的每个元素提供多种拜访形式,即每个元素有多个访问者对象拜访。
  22. 备忘录(Memento)模式:在不毁坏封装性的前提下,获取并保留一个对象的外部状态,以便当前复原它。
正文完
 0