目录
1. 工厂方法模式(Factory Method Pattern)
2. 抽象工厂模式(Abstract Factory Pattern)
1. 责任链模式(Chain of Responsibility Pattern)
10. 模板方法模式(Template Method Pattern)
摘要
C++中的设计模式对于我们项目开发来说十分重要,通常会根据自己的实际需求进行相关的选择。
下面我将通过一些伪代码来分享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)
- 需要对一个对象结构中的各元素进行不同操作,而不改变对象结构。