
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文介绍了访问者设计模式的实现原理与应用场景。作者通过电脑硬件检测的案例,对比了传统继承多态写法与访问者模式的差异。传统写法将检测逻辑耦合在硬件类中,违反开闭原则;而访问者模式将数据与操作分离,硬件类只负责存储数据,检测逻辑集中在访问者类中。该模式通过双分派机制实现动态绑定,新增功能只需添加访问者而无需修改原有代码,完美符合开闭原则。文章详细分析了访问者模式的优缺点,指出其适合元素类型稳定但需要频

本文介绍了外观模式及其应用,通过封装Jsoncpp库的序列化和反序列化操作,简化了接口使用。外观模式为子系统提供统一的高级接口,降低系统耦合度。同时阐述了最少知识原则,强调减少对象间不必要的交互,但需权衡其带来的额外包装类成本。最后对比了适配器、装饰者和外观模式的区别:适配器改变接口,装饰者扩展功能,外观简化接口。设计模式的选择应结合实际需求,权衡维护成本与性能影响。

本文介绍了责任链设计模式及其应用。责任链模式通过构建对象链来处理请求,每个对象依次检查请求并决定处理或转发。文章以请假审批流程为例,展示了如何用C++实现小组长、部门经理和总经理的三级审批链,说明了该模式解耦请求发送者和接收者、支持动态调整责任链等优点,同时也指出了可能存在的性能开销和循环引用风险。该模式适用于需要多个对象处理请求的场景,如窗体事件处理系统。

本文介绍了状态模式的设计与实现,通过糖果机案例展示了如何用C++实现该模式。文章首先定义State接口和具体状态类(NoQuarterState、HasQuarterState等),将每个状态的行为封装到独立类中,避免复杂的条件判断。糖果机类(GumballMachine)通过委托给当前状态对象来改变行为,实现了状态转换。文中还比较了状态模式与策略模式的异同,指出状态模式更关注内部状态驱动的行为变

本文介绍了适配器设计模式在C++中的实现与应用。作者通过将Java示例转换为C++代码,展示了如何使用适配器模式解决接口不兼容问题。文章首先以生活中的适配器类比,然后通过鸭子与火鸡的接口转换示例详细说明了对象适配器的实现方式,包括将Turkey接口适配为Duck接口的具体代码。此外还介绍了类适配器的多重继承实现方法,并比较了两种适配器的优缺点(组合优于继承)。最后指出适配器模式在STL迭代器等场景

本文是《Head First设计模式》学习笔记的C++实现版,重点解析单件(单例)模式。文章首先介绍了单件模式的特点:确保类只有一个实例并提供全局访问点,相比全局变量更节省资源。随后详细剖析了C++实现单件模式的两个关键点:类外初始化静态成员和访问私有构造函数。通过代码示例展示了懒汉模式(延迟实例化)和饿汉模式(启动即实例化)的实现方法,包括构造函数私有化、防拷贝构造等技巧。特别讨论了多线程环境下

本文基于《Head First设计模式》内容,使用C++重写了工厂模式示例。文章首先指出直接使用new创建对象违反"针对接口编程"原则,导致代码脆弱。通过披萨店案例展示了简单工厂模式,将对象创建封装到工厂类中。接着引入工厂方法模式,将createPizza()作为抽象方法,由子类决定具体实现,实现对象创建的延迟。文章详细对比了两种模式:简单工厂封装创建逻辑但仍是静态的,工厂方法

本文介绍了装饰者设计模式在星巴兹咖啡订单系统中的应用。文章首先分析了传统继承方式带来的类爆炸问题,随后引入开放-关闭原则,详细讲解了装饰者模式如何通过动态组合对象来灵活扩展功能。作者用C++实现了咖啡基类和调料装饰类,展示了如何通过层层装饰来构建复杂订单。代码示例演示了双倍摩卡豆奶加牛奶的订单实现过程,并分析了装饰链的调用流程。最后讨论了装饰者模式的优缺点,并扩展实现了按杯型定价的功能。该模式有效

本文介绍了观察者模式在气象监测系统中的应用。作者使用C++和Qt框架重构了《Head First设计模式》中的Java示例,通过WeatherData类实现气象数据监测,并构建了当前状况、统计和预报三个显示组件。文章详细讲解了观察者模式的核心概念,包括主题(Subject)和观察者(Observer)接口的设计与实现,以及如何通过松耦合方式实现对象间通信。特别展示了Qt信号槽机制与观察者模式的关系

常⻅的双指针有两种形式,⼀种是对撞指针,⼀种是左右指针。








