
设计模式
文章平均质量分 60
设计模式
Cuit小唐
编程小菜鸟
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 状态模式详解
状态模式(State Pattern)是一种行为设计模式,允许对象在内部状态改变时改变其行为,使对象看起来像是改变了其类。该模式遵循单一职责原则、开闭原则和封装性,将状态相关行为分离到不同类中,便于新增状态而不修改现有代码。状态模式的主要优点包括清晰的状态转换、减少条件语句、易于扩展和局部化状态特定行为。模式结构包括上下文(Context)、状态接口(State)和具体状态(ConcreteState)。通过上下文类维护当前状态的引用,并将状态相关请求委托给当前状态对象,实现状态转换。状态模式适用于工作流引原创 2025-05-12 10:07:07 · 738 阅读 · 0 评论 -
C++ 中介者模式详解
中介者模式通过引入中介者对象来集中管理组件间的交互,从而降低组件间的耦合度。该模式遵循单一职责原则、迪米特法则和开闭原则,主要优点包括降低耦合、集中控制、简化维护和提高组件的复用性。模式结构包括中介者接口(Mediator)、具体中介者(ConcreteMediator)和组件(Component)。组件通过中介者进行通信,而不是直接相互依赖。代码示例展示了一个登录对话框的实现,其中中介者协调按钮、文本框和复选框的交互。模式变体包括观察者中介者和单例中介者,实际应用场景涵盖GUI开发、聊天系统、航空管制、工原创 2025-05-12 10:05:47 · 419 阅读 · 0 评论 -
C++ 责任链模式详解
责任链模式是一种行为设计模式,允许请求沿着处理链传递,直到找到合适的处理者。核心设计原则包括单一职责、开闭原则和松耦合。主要优点包括动态链、解耦、灵活性和顺序控制。模式结构由处理者接口(Handler)、具体处理者(ConcreteHandler)和客户端(Client)组成。代码示例展示了公司审批流程中的责任链应用,包括初级经理、高级经理、总监和CEO的处理逻辑。模式变体包括使用函数对象作为处理者和中断链与组合处理。实际应用场景包括审批流程、事件处理、中间件管道、异常处理和日志过滤。原创 2025-05-11 07:53:49 · 422 阅读 · 0 评论 -
C++ 模板方法模式详解
模板方法模式是一种行为设计模式,通过在父类中定义算法的框架,并将某些步骤的具体实现延迟到子类,从而实现代码复用和灵活性。该模式遵循好莱坞原则、开闭原则和单一职责原则,主要优点包括代码复用、反向控制、灵活性和扩展性。模式结构由抽象类和具体类组成,抽象类定义模板方法和基本操作,具体类实现这些操作并可覆盖默认实现。代码示例展示了不同数据处理器的实现,如CSV、数据库和API数据处理器。模式变体包括使用钩子方法和与策略模式结合。实际应用场景广泛,如框架设计、数据处理流程、游戏开发、编译器和测试框架等。原创 2025-05-11 07:52:40 · 461 阅读 · 0 评论 -
C++ 命令模式详解
命令模式是一种行为设计模式,它将请求封装为对象,从而允许参数化客户端使用不同的请求、队列或日志请求,并支持可撤销的操作。该模式遵循单一职责原则、开闭原则和松耦合原则,主要优点包括解耦请求发送者和接收者、易于扩展、支持命令组合、撤销和重做以及延迟执行。模式结构包括命令接口、具体命令、调用者、接收者和客户端。通过代码示例展示了如何实现电灯和风扇的控制命令,并支持宏命令和撤销操作。命令模式的变体包括支持重做的命令模式和事务性命令,实际应用场景涵盖GUI操作、事务系统、游戏开发、智能家居和任务队列等。原创 2025-05-10 08:44:07 · 581 阅读 · 0 评论 -
C++ 解释器模式详解
解释器模式是一种行为设计模式,用于定义语言的文法并提供解释器来解析和执行该语言中的句子。其核心设计原则包括单一职责、开闭原则和封装性,使得文法规则可以分解为多个类,且易于扩展和修改。该模式的主要优点包括易于扩展、实现简单、解释灵活,特别适合实现领域特定语言(DSL)。模式结构包括抽象表达式、终结符表达式、非终结符表达式、上下文和客户端。通过构建抽象语法树并调用解释操作,解释器模式可以灵活地解析和执行复杂的语言规则。实际应用场景包括正则表达式、SQL解析、数学公式计算、编译器设计和业务规则引擎等。原创 2025-05-10 08:42:41 · 381 阅读 · 0 评论 -
C++ 观察者模式详解
观察者模式是一种行为设计模式,用于在对象间建立一对多的依赖关系,使得当一个对象(主题)状态改变时,所有依赖它的对象(观察者)都能自动收到通知并更新。该模式遵循松耦合、开闭原则和抽象耦合等设计原则,具有动态订阅、广播通信、解耦和事件处理等优点。模式结构包括主题(Subject)和观察者(Observer)接口,以及具体观察者(ConcreteObserver)的实现。通过主题维护观察者列表并提供注册/注销接口,观察者实现更新接口并维护对主题的引用。代码示例展示了主题状态改变时观察者的自动更新,以及观察者动态订原创 2025-05-09 12:45:47 · 761 阅读 · 0 评论 -
C++ 迭代器模式详解
迭代器模式(Iterator Pattern)是一种行为设计模式,它提供一种方法一个聚合对象中的各个元素,而又该对象的内部表示。原创 2025-05-08 09:24:13 · 979 阅读 · 0 评论 -
C++ 策略模式详解
策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列,并将每个算法封装起来,使它们可以,且算法的变化不会影响使用算法的客户端。原创 2025-05-08 09:22:45 · 326 阅读 · 0 评论 -
C++ 备忘录模式详解
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的前提下,捕获并一个对象的内部状态,以便以后可以到这个状态。原创 2025-05-07 09:43:38 · 308 阅读 · 0 评论 -
C++ 组合模式详解
组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成来表示"部分-整体"的层次结构,使得客户端可以单个对象和组合对象。原创 2025-05-07 09:42:40 · 462 阅读 · 0 评论 -
C++ 装饰器模式详解
装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许向一个现有的对象,同时。这种模式创建了一个装饰类,用来包装原有的类,提供了比继承更有弹性的替代方案。原创 2025-05-06 14:57:57 · 929 阅读 · 0 评论 -
C++ 享元模式与共享工厂模式详解
享元模式(Flyweight Pattern)是一种结构型设计模式,它通过共享技术来高效地支持大量细粒度对象的复用。共享工厂模式通常与享元模式结合使用,用于管理和共享享元对象。原创 2025-05-06 14:56:03 · 300 阅读 · 0 评论 -
C++ 外观模式详解
外观模式(Facade Pattern)是一种结构型设计模式,它为复杂的子系统提供一个简化的接口。原创 2025-05-05 21:59:43 · 832 阅读 · 0 评论 -
C++ 适配器模式详解
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间能够协同工作。原创 2025-05-05 21:58:52 · 558 阅读 · 0 评论 -
C++ 桥接模式详解
定义抽象接口,维护一个指向实现者的引用。原创 2025-05-04 08:30:00 · 300 阅读 · 0 评论 -
C++ 原型模式详解
原型模式(Prototype Pattern)是一种创建型设计模式,它通过复制现有对象来创建新对象,而不是通过新建类实例的方式。原创 2025-05-04 08:30:00 · 180 阅读 · 0 评论 -
C++ 建造者模式详解
建造者模式(Builder Pattern)是一种创建型设计模式,它允许你分步骤创建复杂对象,使相同的构建过程可以创建不同的表示。原创 2025-05-04 08:30:00 · 319 阅读 · 0 评论 -
C++ 简单工厂模式详解
简单工厂模式(Simple Factory Pattern)是最简单的工厂模式,它不属于GoF 23种设计模式,但它是工厂方法模式和抽象工厂模式的基础。原创 2025-05-03 17:50:49 · 1027 阅读 · 0 评论 -
C++ 单例模式详解
单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问该实例。原创 2025-05-03 17:47:38 · 485 阅读 · 0 评论 -
C++ 抽象工厂模式详解
声明创建抽象产品对象的接口。原创 2025-05-03 14:55:17 · 495 阅读 · 0 评论