
设计模式
文章平均质量分 77
晴雨日记
有时天下着雨心却是晴的(C++/Qt开发工程师)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【设计模式】其它经典模式-黑板模式(Blackboard Pattern)
黑板模式是一种协作式问题解决模式,模拟多位专家围绕物理黑板协作的场景:黑板(Blackboard):共享数据存储中心知识源(Knowledge Sources):独立的问题解决模块控制器(Controller):协调知识源执行顺序原创 2025-06-02 08:37:45 · 449 阅读 · 0 评论 -
【设计模式】其它经典模式-反应堆模式(Reactor Pattern)
Reactor();void run();private:优势:高并发I/O处理、低资源消耗、避免线程切换开销劣势:回调嵌套复杂、CPU密集型操作会阻塞事件循环适用场景:Web服务器、即时通讯、游戏服务器等I/O密集型系统实际项目中可结合线程池:Reactor处理I/O,工作线程处理计算任务(如Proactor模式)。原创 2025-06-01 09:54:43 · 680 阅读 · 0 评论 -
【设计模式】其它经典模式-屏障模式(Barrier Pattern)
屏障是一种线程同步机制,允许多个线程在某个执行点等待,直到所有参与的线程都到达该点后,才能继续执行。C++20 正式在标准库中引入了 std::barrier。原创 2025-06-01 09:53:58 · 280 阅读 · 0 评论 -
【设计模式】其它经典模式-注册模式(Registry Pattern)
注册模式(Registry Pattern)是一种用于动态管理对象创建和访问的设计模式。它通过一个中央注册表(Registry)存储可创建对象的元信息(如类名和构造函数),实现运行时动态创建对象和解耦对象使用与具体实现。原创 2025-06-01 08:16:23 · 327 阅读 · 0 评论 -
【设计模式】其它经典模式-委托模式(Delegate Pattern)
委托模式是一种对象组合设计模式,核心思想是将特定任务的责任转移给另一个对象(委托对象)。这种模式解除了调用者和执行者之间的耦合,增强了代码的灵活性和复用性。原创 2025-05-31 09:55:54 · 725 阅读 · 0 评论 -
【设计模式】其它经典模式-标记接口模式(Marker Interface Pattern)
标记接口(Marker Interface)是一种不包含任何方法或数据的特殊接口,仅用于标记类的元数据信息。其主要目的是通过类型系统在编译期或运行期为类附加语义标签,实现类型检测或策略选择。原创 2025-05-31 09:54:22 · 395 阅读 · 0 评论 -
【设计模式】其它经典模式-规格模式(Specification Pattern)
规格模式(Specification Pattern)是一种行为设计模式,用于将业务规则封装成可重用的逻辑单元,支持通过组合方式构建复杂查询条件。核心思想是将条件判断逻辑抽象为独立对象,实现解耦和灵活组合。原创 2025-05-30 09:49:02 · 304 阅读 · 0 评论 -
【设计模式】其它经典模式-类型对象模式(Type Object Pattern)
类型对象 = 享元 + 工厂 + 策略:兼具数据共享、对象创建和行为定制的综合模式。将类型本身抽象为对象,使类型与实例分离,支持运行时动态创建和管理类型。原创 2025-05-30 08:50:14 · 474 阅读 · 0 评论 -
【设计模式】其它经典模式-对象池模式(Object Pool Pattern)
对象池模式是一种创建型设计模式,通过预先创建并管理一组可重用的对象,避免频繁创建和销毁对象的开销。适用于对象初始化成本高、资源受限的场景(如数据库连接、线程、网络连接等)。原创 2025-05-30 08:47:30 · 840 阅读 · 0 评论 -
【设计模式】其它经典模式-延迟加载模式(Lazy Loading)
将对象的创建、数据的加载或计算推迟到首次真正需要时才执行,以减少初始化开销和内存占用。原创 2025-05-29 18:29:24 · 916 阅读 · 0 评论 -
【设计模式】其它经典模式-拦截器模式(Interceptor Pattern)
拦截器模式是一种行为型设计模式,用于在方法调用前后插入自定义逻辑(如日志、验证、监控等)。它通过解耦核心业务逻辑和横切关注点(cross-cutting concerns),实现 AOP(面向切面编程)的核心思想。原创 2025-05-29 18:28:10 · 274 阅读 · 0 评论 -
【设计模式】其它经典模式-空对象模式(Null Object Pattern)
用行为合理的空对象替代 nullptr 检查,消除客户端代码中的判空逻辑,避免空指针异常,提供默认的安全行为。原创 2025-05-29 12:43:51 · 443 阅读 · 0 评论 -
【设计模式】其它经典模式-依赖注入(Dependency Injection, DI)
依赖注入(Dependency Injection, DI)是一种解耦组件依赖关系的设计模式,核心思想是将对象的依赖从内部创建转移到外部注入,从而提高代码的灵活性、可测试性和可维护性。原创 2025-05-29 08:00:39 · 573 阅读 · 0 评论 -
【设计模式】行为型模式-迭代器模式(Iterator Pattern)
迭代器模式(Iterator Pattern)是一种行为型设计模式,它提供一种方法顺序访问聚合对象的元素,而无需暴露其底层表示。以下是针对 C++ 的详细解释和示例:原创 2025-05-23 10:00:48 · 255 阅读 · 0 评论 -
【设计模式】行为型模式-状态模式
状态模式是一种行为设计模式,允许对象在内部状态改变时改变其行为。原创 2025-05-21 19:39:00 · 519 阅读 · 0 评论 -
【设计模式】行为型模式-解释器模式(Interpreter Pattern)
解释器模式(Interpreter Pattern) 是一种行为型设计模式,用于定义语言的语法规则,并提供解释器来处理这些规则。它将每个语法规则映射到一个类,通过组合这些类构建抽象语法树(AST),并递归解释执行节点。原创 2025-05-20 08:54:42 · 497 阅读 · 0 评论 -
【设计模式】行为型模式-观察者模式(Observer Pattern)
观察者模式(Observer Pattern)是一种 行为型设计模式,用于建立对象间的一对多依赖关系。当一个对象(被观察者)状态变化时,所有依赖它的对象(观察者)都会自动收到通知并更新。原创 2025-05-20 17:09:32 · 609 阅读 · 0 评论 -
【设计模式】行为型模式-中介者模式(Mediator Pattern)
中介者模式(Mediator Pattern)通过引入中介者对象来协调多个对象之间的交互,从而降低它们之间的耦合度。以下是一个使用C++实现的详细示例:原创 2025-05-20 08:57:04 · 248 阅读 · 0 评论 -
【设计模式】行为型模式-访问者模式
访问者模式是一种行为型设计模式,允许在不修改对象结构的前提下为其添加新操作。它通过将算法与对象结构分离,实现双重分派机制。以下是用C++实现的详细说明:原创 2025-05-19 17:15:14 · 505 阅读 · 0 评论 -
【设计模式】行为型模式-备忘录模式(Memento Pattern)
备忘录模式(Memento Pattern)是一种行为设计模式,允许在不破坏对象封装性的前提下,捕获并外部化对象的内部状态,以便后续可以恢复到这个状态。原创 2025-05-17 11:42:10 · 226 阅读 · 0 评论 -
【设计模式】行为型模式-命令模式(Command Pattern)
命令模式是一种行为设计模式,它将请求封装为独立对象,允许您参数化客户端对象的不同请求、队列请求或记录请求日志,并支持可撤销操作。原创 2025-05-16 12:35:31 · 147 阅读 · 0 评论 -
【设计模式】行为型模式-责任链模式(Chain of Responsibility Pattern)
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,允许将请求沿着处理链传递,直到有对象处理它为止。原创 2025-05-15 19:55:41 · 400 阅读 · 0 评论 -
【设计模式】行为型模式-策略模式(Strategy Pattern)
策略模式是一种行为设计模式,允许在运行时动态选择算法或行为,通过将算法封装成独立类来实现不同策略的灵活切换,避免使用多重条件判断语句。原创 2025-05-15 11:10:30 · 246 阅读 · 0 评论 -
【设计模式】行为型模式-模板方法模式祥解
模板方法模式是一种行为设计模式,它定义了一个算法的骨架,允许子类在不改变算法结构的情况下重定义某些步骤。原创 2025-05-14 13:56:32 · 394 阅读 · 0 评论 -
【设计模式】结构型模式-组合模式
组合模式是一种结构型设计模式,用于将对象组织成树形结构,以表示“部分-整体”的层次关系。它允许客户端以统一的方式处理单个对象和组合对象。以下是用C++实现的详细示例:原创 2025-05-22 05:35:17 · 267 阅读 · 0 评论 -
【设计模式】结构型模式-装饰器模式(Decorator Pattern)
装饰器模式(Decorator Pattern)是一种结构型设计模式,允许通过将对象包装在装饰器对象中,动态地添加新行为。以下是详细解释及C++示例:原创 2025-05-22 05:35:39 · 440 阅读 · 0 评论 -
【设计模式】结构型模式-享元模式(Flyweight Pattern)
享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享对象来减少内存使用,特别适用于存在大量相似对象的场景。该模式的核心思想是将对象的 内部状态(可共享部分)与 外部状态(不可共享部分)分离,通过共享内部状态来减少对象数量。原创 2025-05-20 00:01:39 · 262 阅读 · 0 评论 -
【设计模式】结构型模式-门面模式(Facade Pattern)
门面模式(Facade Pattern)是一种结构型设计模式,旨在为复杂的子系统提供一个统一的、更高层次的接口,使得子系统更易使用。以下是用 C++ 实现的详细说明和示例:原创 2025-05-19 11:17:00 · 362 阅读 · 0 评论 -
【设计模式】结构型模式-代理模式(Proxy Pattern)
代理模式是一种**结构型设计模式**,通过创建代理对象(Proxy)控制对另一个对象(Real Subject)的访问。代理充当中间人,允许在访问真实对象前后插入额外逻辑(如权限校验、延迟加载、日志记录等),同时保持客户端代码与真实对象的解耦。原创 2025-05-15 12:30:57 · 156 阅读 · 0 评论 -
【设计模式】结构型模式-桥接模式(Bridge Pattern)
桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象部分与其实现部分分离,使它们可以独立变化。该模式通过组合关系替代继承关系,有效避免多层继承带来的复杂性。原创 2025-05-19 10:38:24 · 327 阅读 · 0 评论 -
【设计模式】结构型模式-适配器模式(Adapter Pattern)
适配器模式(Adapter Pattern)是一种结构型设计模式,其核心目标是通过一个中间层(适配器)将不兼容的接口转换为客户端期望的接口,使原本无法协同工作的类能够协同。原创 2025-05-14 08:40:50 · 846 阅读 · 0 评论 -
【设计模式】创建型模式-原型模式(Prototype Pattern)
原型模式是一种创建型设计模式,允许通过复制现有对象(原型)来创建新对象,而无需依赖子类化。核心思想是将对象创建过程委托给对象自身,通过克隆机制实现高效的对象复制。原创 2025-05-19 08:42:37 · 443 阅读 · 0 评论 -
【设计模式】创建型模式-建造模式(Builder Pattern)
建造模式(Builder Pattern)是一种创建型设计模式,用于分步骤构建复杂对象。它通过将对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。原创 2025-05-14 08:29:37 · 343 阅读 · 0 评论 -
【设计模式】创建型模式-工厂模式详解
工厂模式是一种创建型设计模式,提供创建对象的最佳方式,将对象的创建与使用分离。原创 2025-05-14 00:07:13 · 400 阅读 · 0 评论 -
【设计模式】创建型模式-单例模式祥解
单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点来获取该实例。其核心思想是:禁止外部直接创建对象(私有化构造函数),通过静态方法控制实例的创建和访问。原创 2025-05-13 22:57:25 · 1051 阅读 · 0 评论 -
【设计模式】设计模式SOLID原则
设计模式原则是指导软件设计的基础思想,它们帮助开发者构建灵活、可维护、可扩展的代码。原创 2025-05-13 18:45:45 · 1101 阅读 · 0 评论 -
【设计模式】设计模式简介与应用指南(2)
设计模式是软件开发中针对常见问题的经典解决方案,它们提供了可复用的设计思路,帮助开发者编写更灵活、可维护的代码。原创 2025-05-14 08:53:22 · 968 阅读 · 0 评论 -
【设计模式】设计模式简介与应用指南
设计模式是软件开发中针对常见问题的经典解决方案,它们提供了可复用的设计思路,帮助开发者编写更灵活、可维护的代码。以下是设计模式的简明介绍:原创 2025-05-13 09:38:07 · 403 阅读 · 0 评论