C++中的23种设计模式

目录

摘要

创建型模式

1. 工厂方法模式(Factory Method Pattern)

2. 抽象工厂模式(Abstract Factory Pattern)

3. 单例模式(Singleton Pattern)

4. 生成器模式(Builder Pattern)

5. 原型模式(Prototype Pattern)

结构型模式

1. 适配器模式(Adapter Pattern)

2. 桥接模式(Bridge Pattern)

3. 组合模式(Composite Pattern)

4. 装饰器模式(Decorator Pattern)

5. 外观模式(Facade Pattern)

6. 享元模式(Flyweight Pattern)

7. 代理模式(Proxy Pattern)

行为型模式

1. 责任链模式(Chain of Responsibility Pattern)

2. 命令模式(Command Pattern)

3. 解释器模式(Interpreter Pattern)

4. 迭代器模式(Iterator Pattern)

5. 中介者模式(Mediator Pattern)

6. 备忘录模式(Memento Pattern)

7. 观察者模式(Observer Pattern)

8. 状态模式(State Pattern)

9. 策略模式(Strategy Pattern)

10. 模板方法模式(Template Method Pattern)

11. 访问者模式(Visitor Pattern)


摘要

C++中的设计模式对于我们项目开发来说十分重要,通常会根据自己的实际需求进行相关的选择。
下面我将通过一些伪代码来分享C++的23种设计模式是如何实践的。(仅作为参考)

按创建型模式、结构型模式和行为型模式进行分类可以分为下面的类别:

创建型模式

1. 工厂方法模式(Factory Method Pattern)

- 常常在创建对象时需要灵活的决定使用哪个类。

C++中的工厂方法模式-CSDN博客

2. 抽象工厂模式(Abstract Factory Pattern)

- 需要创建一系列相关或相互依赖的对象时,不需要指定它们的具体类。

C++中的抽象工厂模式-CSDN博客

3. 单例模式(Singleton Pattern)

- 系统中某些类只能有一个实例,如日志记录器、线程池等。

C++中的单例模式-CSDN博客

4. 生成器模式(Builder Pattern)

- 需要创建复杂对象,其构建过程包含多个步骤,并且步骤可变。

C++中的生成器模式-CSDN博客

5. 原型模式(Prototype Pattern)

- 需要频繁地创建对象,且创建过程复杂或消耗资源较多。

C++中的原型模式-CSDN博客

结构型模式

1. 适配器模式(Adapter Pattern)

- 需要将一个类的接口转换成客户希望的另一个接口。

C++中的适配器模式-CSDN博客

2. 桥接模式(Bridge Pattern)

- 需要在抽象和实现之间解耦,使得它们可以独立变化。

C++中的桥接模式-CSDN博客

3. 组合模式(Composite Pattern)

- 需要表示对象的部分-整体层次结构。

C++中的组合模式-CSDN博客

4. 装饰器模式(Decorator Pattern)

- 需要在不改变对象接口的情况下给对象动态添加职责。

C++中的装饰器模式-CSDN博客

5. 外观模式(Facade Pattern)

- 需要为子系统中的一组接口提供一个一致的界面。

C++中的外观模式-CSDN博客

6. 享元模式(Flyweight Pattern)

- 需要大量细粒度对象,且这些对象消耗较多内存。

C++中的享元模式-CSDN博客

7. 代理模式(Proxy Pattern)

- 需要在不修改原始对象的情况下控制对它的访问。

C++中的代理模式-CSDN博客

行为型模式

1. 责任链模式(Chain of Responsibility Pattern)

- 需要将请求的发送者和接收者解耦,使多个对象有机会处理请求。

C++中的责任链模式-CSDN博客

2. 命令模式(Command Pattern)

- 需要对请求进行封装,使得请求、排队和日志记录变得更容易。

C++中的命令模式-CSDN博客

3. 解释器模式(Interpreter Pattern)

- 需要为某些特定的领域创建语言并解释语言中的语句。

C++中的解释器模式-CSDN博客

4. 迭代器模式(Iterator Pattern)

- 需要顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。

C++中的迭代器模式-CSDN博客

5. 中介者模式(Mediator Pattern)

- 需要减少多个对象之间的耦合。

C++中的中介者模式-CSDN博客

6. 备忘录模式(Memento Pattern)

- 需要捕获对象的内部状态,以便之后恢复。

C++中的备忘录模式-CSDN博客

7. 观察者模式(Observer Pattern)

- 对象间存在一对多依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都得到通知并被自动更新。

C++中的观察者模式-CSDN博客

8. 状态模式(State Pattern)

- 对象的行为随状态改变而改变。

C++中的状态模式-CSDN博客

9. 策略模式(Strategy Pattern)

- 需要在运行时动态选择算法。

C++中的策略模式-CSDN博客

10. 模板方法模式(Template Method Pattern)

- 需要在一个操作中定义算法的骨架,并允许子类在不改变算法结构的情况下重新定义算法的某些步骤。

C++中的模板方法模式-CSDN博客

11. 访问者模式(Visitor Pattern)

- 需要对一个对象结构中的各元素进行不同操作,而不改变对象结构。

C++中的访问者模式-CSDN博客

相关推荐

  1. C++23设计模式

    2024-06-13 08:02:02       8 阅读
  2. C++23设计模式精讲

    2024-06-13 08:02:02       29 阅读
  3. C++ 23设计模式

    2024-06-13 08:02:02       32 阅读
  4. 23设计模式C#代码举例】

    2024-06-13 08:02:02       37 阅读
  5. 设计模式——23

    2024-06-13 08:02:02       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-13 08:02:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-13 08:02:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-13 08:02:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-13 08:02:02       18 阅读

热门阅读

  1. 连通块【搜索】

    2024-06-13 08:02:02       7 阅读
  2. UML的9中图例概述

    2024-06-13 08:02:02       7 阅读
  3. 低代码开发:企业供应链数字化的挑战与应对

    2024-06-13 08:02:02       8 阅读
  4. git - LFS 使用方法

    2024-06-13 08:02:02       6 阅读
  5. LINUX中使用DT_MACHINE_START/MACHINE_START宏

    2024-06-13 08:02:02       5 阅读
  6. 新人学习笔记之(初识C语言)

    2024-06-13 08:02:02       7 阅读
  7. 仓库风格-系统架构师(九)

    2024-06-13 08:02:02       6 阅读
  8. xcode命令行

    2024-06-13 08:02:02       5 阅读
  9. RestTemplate的异常重试机制

    2024-06-13 08:02:02       8 阅读
  10. Python列表和元组的底层实现

    2024-06-13 08:02:02       7 阅读
  11. 轻资产互联网项目:零撸看广告小游戏开发

    2024-06-13 08:02:02       6 阅读