设计模式
文章平均质量分 87
ZouZou老师
深耕技术领域十余年,兼具全栈开发能力与跨领域实战经验,擅长将复杂技术体系化拆解、实战化落地。核心技术栈覆盖后端开发、桌面 / 嵌入式应用、人工智能、音视频工程四大核心方向,曾主导多个大型企业级项目的架构设计与研发落地,兼具一线编码经验与技术团队管理经验,深谙技术学习痛点与职场提升路径,致力于为学员提供 “能落地、能复用、能变现” 的技术课程。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++设计模式之观察者模式:以家具生产为例
本文通过家具生产场景展示了观察者模式的应用。该模式建立工厂(被观察者)与经销商、零售商、客户(观察者)间的一对多依赖关系,当工厂状态变化时自动通知所有观察者。文章详细解析了模式结构,包含抽象观察者、具体观察者、抽象被观察者和具体被观察者四个核心组件,并提供了完整的C++实现代码。该模式优势在于解耦双方,新增观察者无需修改被观察者代码,适用于需要状态联动、动态增减观察者的场景。在C++开发中,观察者模式广泛应用于GUI、日志系统等需要高效通知机制的场景。原创 2025-12-11 07:30:44 · 521 阅读 · 0 评论 -
C++设计模式之备忘录模式:以家具生产为例
摘要:本文以实木沙发生产为例,介绍了备忘录设计模式的应用。该模式通过"发起人-备忘录-管理者"结构,在不破坏封装性的前提下实现对象状态保存与回溯。在沙发生产场景中,可保存裁切、打磨、上色等关键节点状态,当需要质量回溯或客户需求变更时,能快速恢复到指定状态。C++代码实现展示了如何通过私有构造函数和友元类保障封装性,使用map存储多个状态快照。该模式特别适合需要版本控制或状态回溯的业务场景,如生产流程管理、软件撤销操作等,具有灵活性和安全性优势。原创 2025-12-11 07:31:02 · 847 阅读 · 0 评论 -
C++设计模式之迭代器模式:以家具生产为例
摘要:本文探讨了迭代器模式在家具生产管理中的应用。通过将家具仓库的遍历逻辑与存储结构分离,该模式实现了数据访问的统一接口。文章详细阐述了迭代器模式的核心角色(抽象迭代器、具体迭代器、抽象聚合、具体聚合)及其在C++中的实现方式,以vector存储的实木家具仓库为例展示了具体代码实现。该设计模式的优势在于封装内部数据结构、降低代码耦合度、提高扩展性,适用于需要统一遍历不同聚合对象或隐藏内部实现的场景,为家具盘点、质检等操作提供了灵活可靠的解决方案。原创 2025-12-11 07:31:45 · 805 阅读 · 0 评论 -
C++设计模式之中介者模式:以家具生产为例
中介者模式通过引入中介对象封装对象间的交互,将网状关系转化为星型结构。在家具生产场景中,调度中心作为中介者协调木材供应、切割、组装、质检等环节,各生产单元只需与调度中心通信。C++实现展示了抽象中介者、具体中介者(调度中心)和同事类(生产环节)的交互方式。该模式解耦了生产环节间的直接依赖,集中管理流程逻辑,提高系统可维护性,适用于存在复杂交互关系的场景。当对象间形成网状依赖且需要简化交互时,中介者模式能有效降低耦合度,使对象专注于自身职责。原创 2025-12-11 07:31:23 · 352 阅读 · 0 评论 -
C++设计模式之命令模式:以家具生产为例
本文以家具生产为场景,详细讲解了C++命令模式的实现。命令模式通过将"请求"封装为独立对象,实现设计师(发起者)与机床(执行者)的解耦。文章展示了抽象命令、具体命令、接收者、调用者等核心角色的代码实现,并模拟了"执行-撤销-重新执行"的生产流程。该模式优势在于解耦设计、灵活扩展、支持撤销/日志和批量执行,特别适合需要动态管理操作流程的系统。命令模式使家具生产流程更加灵活可控,是处理复杂操作序列的理想选择。原创 2025-12-10 19:19:59 · 723 阅读 · 0 评论 -
C++设计模式之责任链模式:以家具生产为例
摘要:本文介绍了责任链模式在家具生产流程中的应用。该模式通过将各生产环节(如原材料检验、木材切割等)封装为处理者对象并形成责任链,实现生产请求的链式传递和处理。文章详细阐述了核心角色设计,包括抽象处理者、具体处理者和请求对象,并以实木餐桌生产为例展示了C++实现代码。责任链模式的优势在于灵活调整生产流程、快速定位故障点,并符合开闭原则。这种设计模式特别适用于具有明确流程顺序的业务场景。原创 2025-12-10 19:17:11 · 859 阅读 · 0 评论 -
C++设计模式之代理模式:以家具生产示例
摘要:本文以家具生产场景为例,阐述了代理设计模式的应用。通过定义抽象家具生产者接口(IFurnitureProducer),实现了品牌方(客户端)与生产方(真实对象/代理)的交互标准化。代工厂(代理)在转发生产请求前后执行原料检查和质量检测等辅助逻辑,而真实工厂专注于核心生产流程。C++代码示例展示了代理模式如何实现接口一致性、控制访问和资源管理,并探讨了虚拟代理、保护代理等扩展应用场景,体现了代理模式在解耦业务逻辑、增强扩展性方面的优势。原创 2025-12-09 09:22:41 · 449 阅读 · 0 评论 -
C++设计模式之享元模式:以家具生产为例
享元模式是一种结构型设计模式,通过共享相似对象的内部状态(如材质、款式)来减少内存占用,而将可变的外部状态(如颜色、尺寸)交由客户端维护。该模式包含抽象享元类、具体享元类、享元工厂和客户端四个角色,适用于存在大量相似对象的场景(如家具生产)。实现时需严格区分内部与外部状态,注意线程安全和工厂管理成本。合理使用享元模式能显著提升系统性能,但需权衡复用收益与管理开销。原创 2025-12-09 09:17:59 · 552 阅读 · 0 评论 -
C++设计模式之外观模式:以家具生产为例
本文通过家具生产场景类比C++外观模式(Facade Pattern)的原理与实现。外观模式通过"门面"类封装多个子系统的复杂交互,为客户端提供统一接口。文中以家具厂(门面类)统筹木材加工、五金安装、油漆涂装(子系统)为例,展示了如何简化客户端调用流程,降低系统耦合度。该模式适用于多子系统协同、需要简化交互或实现版本兼容的场景,但也需警惕门面类膨胀风险。最后通过C++代码示例演示了具体实现方式。原创 2025-12-09 09:09:08 · 536 阅读 · 0 评论 -
C++设计模式之装饰器模式:以家具生产为例
摘要:装饰器模式是一种在不改变原有类结构的前提下,通过动态添加装饰对象来扩展功能的灵活设计模式。以家具生产为例,基础家具(如椅子、桌子)作为核心组件,刷漆、雕花等工艺作为装饰器独立实现,通过组合方式实现各种装饰效果,避免了继承带来的类爆炸问题。该模式具有灵活扩展、动态组合和单一职责等优势,适用于需要动态添加功能的场景,如IO流处理、GUI组件装饰等。代码示例展示了如何通过装饰器层层包裹实现家具的多样化装饰效果。原创 2025-12-09 09:04:37 · 747 阅读 · 0 评论 -
C++设计模式之组合模式:以家具生产为例
摘要:C++组合模式(Composite Pattern)通过抽象构件接口统一处理"部分-整体"层级关系,在家具生产场景中尤为适用。该模式定义包含叶子构件(不可拆分的零件)和复合构件(可组合的整体),客户端无需区分具体类型即可统一调度生产、组装流程。代码实现通过虚函数实现递归操作,支持动态添加/移除部件,满足定制化需求。模式优势包括操作透明性、动态组合灵活性、良好扩展性和高效递归处理,适用于文件系统、UI组件等具有层级结构的场景,需注意通过虚析构函数确保内存安全。原创 2025-12-09 09:00:17 · 646 阅读 · 0 评论 -
C++设计模式之桥接模式:以家具生产为例
摘要:桥接模式通过分离"抽象部分"(家具类型)和"实现部分"(材质)来解决家具生产中类爆炸问题。核心是建立"桥接"关系(材质指针),使两者能独立扩展。示例展示了C++实现:Material接口定义材质操作,Wood/Metal/Plastic实现具体逻辑;Furniture抽象类持有材质指针,Chair/Table实现生产方法时调用材质操作。该模式显著降低类数量(3材质+2家具=5类,传统需6类),符合开闭原则,特别适用于多维度独立变化的场景(如家原创 2025-12-09 08:55:36 · 743 阅读 · 0 评论 -
C++设计模式之适配器模式:以家具生产为例
本文通过家具生产场景阐释适配器模式的应用:当金属椅腿接口与实木椅架不兼容时,适配器充当"转换接头",在不修改原有类的基础上实现协同工作。文中详细展示了适配器模式的三个核心角色(目标接口、适配者和适配器),并通过C++代码示例演示了如何将金属椅腿的特定方法适配为标准椅架接口。该模式适用于新旧系统集成和接口规范统一等场景,能有效解决接口不匹配问题。运行结果表明,适配器成功实现了方法调用的转换和逻辑适配。原创 2025-12-09 08:51:35 · 448 阅读 · 0 评论 -
C++设计模式之原型模式:以家具生产为例
摘要:原型模式是一种创建型设计模式,通过克隆已有对象快速创建新实例,适用于需要高效创建相似对象的场景。以家具生产为例,工厂先创建标准款原型(如橡木餐椅),后续通过克隆原型并调整细节(颜色、装饰)实现快速定制生产,避免重复构造。该模式包含抽象原型(定义克隆接口)、具体原型(实现克隆的具体类)和客户端(使用原型的角色)三个核心结构,能有效提升对象创建效率并保证基础属性一致性。关键要点包括正确实现属性拷贝、确保原型初始状态完整,适用于构造成本高或需要批量生产相似对象的场景。原创 2025-12-09 08:47:43 · 930 阅读 · 0 评论 -
C++设计模式之建造者模式:以电脑组装为例
电脑作为复杂产品,包含CPU、主板、内存、显卡、硬盘等部件,提供添加部件和展示配置的方法。// 产品类:电脑private:// 存储电脑部件public:// 添加部件// 展示电脑配置std::cout << "电脑配置清单:" << std::endl;++i) {抽象建造者定义组装电脑核心部件的纯虚函数,以及获取最终产品的方法,规范组装流程。// 抽象建造者:电脑组装接口protected:// 指向待组装的电脑public:// 构造函数:初始化电脑对象。原创 2025-12-08 08:58:54 · 478 阅读 · 0 评论 -
C++设计模式之抽象工厂模式:以家具生产为例
抽象工厂模式是解决“配套产品创建”问题的核心模式,通过抽象工厂定义产品系列的创建规范,具体工厂实现某一风格的产品生产,客户端依赖抽象接口实现解耦。在日常开发中,当遇到“一系列相互关联的产品需要统一创建”的场景(如UI组件库、设备驱动套件等),抽象工厂模式会是理想的选择。但需注意其“扩展产品种类成本高”的局限性,在设计时需合理规划产品系列的范围。原创 2025-12-08 08:54:05 · 547 阅读 · 0 评论 -
C++设计模式之工厂方法模式:以家具生产为例
摘要:本文通过家具生产场景类比,详细讲解C++工厂方法模式。该模式通过抽象工厂接口和具体工厂子类实现产品创建与使用的分离,符合开放-封闭原则。文章以实木椅子和塑料椅子为例,展示了抽象产品、具体产品、抽象工厂和具体工厂四个核心角色的代码实现,并演示了如何扩展新增产品类型。工厂方法模式适用于产品家族体系明确、需要避免硬编码创建逻辑的场景,通过将创建权交给子类工厂,既保证接口统一性又实现扩展灵活性,是处理多产品创建场景的常用设计模式。原创 2025-12-08 08:16:26 · 804 阅读 · 0 评论 -
C++设计模式之单例模式:以小区快递柜为例
单例模式是一种确保类只有一个实例并提供全局访问点的设计模式,常用于资源共享和控制唯一实例的场景。文章通过快递柜的类比,解释了单例模式的核心要点:私有构造函数、禁用拷贝、全局访问接口和线程安全。介绍了C++中两种经典实现方式:饿汉式(提前创建实例)和懒汉式(按需创建实例),并通过代码示例展示了线程安全的实现方法。单例模式适用于日志管理、配置加载等需要全局唯一对象的场景,但需谨慎使用以避免过度设计。原创 2025-12-08 08:11:37 · 679 阅读 · 0 评论
分享