这是C++语言的一系列文章,内容取自于网易微专业《C++开发工程师(升级版)》。

本文的主题是设计模式。设计模式在软件设计中是为解决常见问题逐渐累积出来的一套设计理念,旨在提高软件的可重用性、可扩展性和可维护性。 关于设计模式,本文只是第一部分,会讲解C++ 中常见的25种设计模式。

上篇文章中,我们讲了五种通用的设计原则,本文要讲的是设计模式,粒度上更细一些。本文引用了 oodesign 上的主要内容, 也将设计模式分为三大类:Creational Patterns(对象创建)、Behavioral Patterns(对象行为)和 Structural Patterns(程序结构)。 下面我们对这三类设计模式分别进行解读。

引用:Object Oriented Design

Part 1 Creational Patterns 对象创建

Creational Patterns 包含七个设计模式,七个模式都是关于如何优雅地、可扩展地创建对象。它们分别是:

  1. Object Pool Pattern 对象池模式
  2. Prototype Pattern 原型模式
  3. Factory Method Pattern 工厂方法模式
  4. Builder Pattern 建造者模式
  5. Factory Pattern 工厂模式
  6. Abstract Factory Pattern 抽象工厂模式
  7. Singleton Pattern 单例模式

Part 2 Behavioral Pattern 对象行为

Behavioral Patterns 包含十一个设计模式,它们通过不同的方式定义了类的行为。它们分别是:

  1. Observer Pattern 观察者模式
  2. Command Pattern
  3. Strategy Pattern 策略模式
  4. Visitor Pattern 访问者模式
  5. Chain of Responsibility Pattern 职责链模式
  6. Mediator Pattern
  7. Iterator Pattern 迭代器模式
  8. Template Method Pattern 模板方法模式
  9. Memento Pattern
  10. Interpreter Pattern
  11. Null Object Pattern

Part 3 Structural Patterns

Structural Patterns 包含了六个设计模式,它们定义了类与类(接口)之间的关系。它们分别是:

  1. Adapter 适配器模式
  2. Bridge 桥接模式
  3. Composite 组合模式
  4. Decorator 装饰器模式
  5. Flyweight
  6. Proxy