C++设计模式(全23种)-CSDN博客
设计模式是在软件工程中常见的问题的解决方案,它们是经过多年实践和总结出来的一套标准化的方法。在C++中,设计模式通常分为三大类:创建型模式、结构型模式和行为型模式。
创建型模式
创建型模式主要关注对象的创建过程,它们提供了创建对象的机制,增加了程序的灵活性和可重用性。C++中常见的创建型模式包括:
-
工厂模式(Factory Pattern) :定义一个用于创建对象的接口,让子类决定实例化哪个类1。
-
抽象工厂模式(Abstract Factory Pattern) :提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类1。
-
单例模式(Singleton Pattern) :确保一个类只有一个实例,并提供一个全局访问点1。
-
建造者模式(Builder Pattern) :允许创建一个复杂对象的步骤一步步进行,而不同的构建者可以产生不同的结果1。
-
原型模式(Prototype Pattern) :使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象1。
结构型模式
结构型模式关注如何将对象和类组织成更大的结构,同时保持结构的灵活和高效。C++中常见的结构型模式包括:
-
适配器模式(Adapter Pattern) :允许将一个类的接口转换成客户期望的另一个接口2。
-
桥接模式(Bridge Pattern) :将抽象部分与实现部分分离,使它们可以独立变化2。
-
装饰器模式(Decorator Pattern) :动态地给一个对象添加一些额外的职责2。
-
外观模式(Facade Pattern) :提供一个统一的接口,用来访问子系统中的一群接口2。
-
享元模式(Flyweight Pattern) :运用共享技术有效地支持大量细粒度的对象2。
-
代理模式(Proxy Pattern) :为其他对象提供一种代理以控制对这个对象的访问2。
行为型模式
行为型模式专注于算法和对象间职责的分配,它们定义了对象间的通信模式。C++中常见的行为型模式包括:
-
责任链模式(Chain of Responsibility Pattern) :使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系3。
-
命令模式(Command Pattern) :将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化3。
-
解释器模式(Interpreter Pattern) :给定一个语言,定义它的文法的一种表示,并定义一个解释器3。
-
迭代器模式(Iterator Pattern) :提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示3。
-
中介者模式(Mediator Pattern) :用一个中介对象来封装一系列的对象交互3。
-
备忘录模式(Memento Pattern) :在不破坏封装的前提下,捕获并保存一个对象的内部状态3。
-
观察者模式(Observer Pattern) :定义对象间的一对多依赖,当一个对象改变状态时,所有依赖者都会收到通知3。
-
状态模式(State Pattern) :允许一个对象在其内部状态改变时改变它的行为3。
-
策略模式(Strategy Pattern) :定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换3。
-
模板方法模式(Template Method Pattern) :定义一个操作中的算法骨架,而将一些步骤延迟到子类中3。
-
访问者模式(Visitor Pattern) :表示一个作用于某对象结构中的各元素的操作3。
设计模式在C++中的应用是多样的,它们可以帮助解决各种设计问题,同时也使得代码更加清晰、可维护和可扩展。