
设计模式
文章平均质量分 88
嵌入式Jerry
《Yocto项目实战教程》作者,技术平台“嵌入式Jerry”(B站,优快云和公众号),实时更新大量高质量原创视频和博文。
展开
-
设计模式每日硬核训练 Day 18:备忘录模式(Memento Pattern)完整讲解与实战应用
本文详细讲解了备忘录模式(Memento Pattern)的设计与应用。该模式在不破坏封装的前提下保存对象内部状态,支持状态回滚。文章通过文本编辑器撤销操作实例,展示了备忘录模式的UML结构和C++实现,包含Originator、Memento、Caretaker三个核心角色。对比了备忘录模式与原型模式的区别,并解答了面试常见问题。最后提供了两个练习题:文本状态保存器和图形编辑器撤销操作,帮助读者深入理解该模式的实际应用场景。该模式适用于需要撤销/恢复功能的场景,如文档编辑、游戏存档等。原创 2025-05-26 14:19:24 · 708 阅读 · 0 评论 -
设计模式每日硬核训练 Day 18:备忘录模式(Memento Pattern)完整讲解与实战应用
我们在图像处理系统中使用备忘录模式保存图像编辑的中间状态。每次用户进行滤镜、剪裁、调整操作时,会生成一个状态快照,存入备忘录栈。当用户点击撤销时,恢复到上一个状态。该方案确保封装性,同时支持多层撤销。✅ 所以我们引入备忘录模式:由备忘录(Memento)保存对象状态,管理员(Caretaker)持有备忘录,对象(Originator)可保存/恢复。我们模拟一个文本编辑器,每次输入文本都可以保存当前状态。它是“撤销 / 恢复”操作背后的设计思想核心。✅ 强调:状态封装、用户体验、栈式回滚逻辑。原创 2025-05-05 17:33:15 · 1169 阅读 · 0 评论 -
设计模式每日硬核训练 Day 17:中介者模式(Mediator Pattern)完整讲解与实战应用
分类主要目的中介者模式归属理由创建型模式负责对象创建与实例化(如工厂、单例)❌ 中介者不负责创建对象结构型模式负责对象组合与组织(如适配器、桥接)❌ 中介者不改变对象静态结构行为型模式负责对象间通信与职责协作✅ 中介者专注协调对象之间的交互关系“中介调行为,不管造结构。场景中介者作用说明GUI 控件交互统一管理按钮、文本框、下拉框的协作逻辑聊天室系统聊天服务器作为中介,转发各用户消息航空交通管制系统塔台协调各飞机起降调度游戏多人房间管理。原创 2025-05-04 23:35:19 · 1070 阅读 · 0 评论 -
设计模式每日硬核训练 Day 17:中介者模式(Mediator Pattern)完整讲解与实战应用
分类主要目的中介者模式归属理由创建型模式负责对象创建与实例化(如工厂、单例)❌ 中介者不负责创建对象结构型模式负责对象组合与组织(如适配器、桥接)❌ 中介者不改变对象静态结构行为型模式负责对象间通信与职责协作✅ 中介者专注协调对象之间的交互关系“中介调行为,不管造结构。场景中介者作用说明GUI 控件交互统一管理按钮、文本框、下拉框的协作逻辑聊天室系统聊天服务器作为中介,转发各用户消息航空交通管制系统塔台协调各飞机起降调度游戏多人房间管理。原创 2025-04-29 14:59:41 · 1126 阅读 · 0 评论 -
设计模式每日硬核训练 Day 16:责任链模式(Chain of Responsibility Pattern)完整讲解与实战应用
场景链式责任节点GUI 事件处理子控件 → 父控件 → 窗口根Web 请求处理认证中间件 → 日志中间件 → 缓存中间件业务审批流组长 → 部门经理 → 总经理客户请求分发客户端路由规则链配置查找链环境变量 → 配置文件 → 默认值。原创 2025-04-27 10:39:52 · 964 阅读 · 0 评论 -
设计模式每日硬核训练 Day 15:享元模式(Flyweight Pattern)完整讲解与实战应用
我们在文本渲染模块中使用了享元模式来复用字符对象,字符本身作为内部状态共享,坐标作为外部状态传入。通过 GlyphFactory 管理共享对象池,节省了内存占用并提升渲染性能,特别适合大量字符的 UI 场景。我们模拟一个文本渲染系统,文字中的每个字符都是一个对象,但字符本身可共享,坐标位置不可共享。在系统中,如果存在大量“内容相同或相似”的对象,重复创建将造成资源浪费。如果这些对象的“大部分状态相同”,我们就可以将它们。而今天的主角“享元模式”,是极致优化资源的代表。原创 2025-04-18 12:26:50 · 960 阅读 · 0 评论 -
设计模式每日硬核训练 Day 14:组合模式(Composite Pattern)完整讲解与实战应用
组合模式用于构建树状结构的对象系统文件夹包含文件和子文件夹UI 容器包含多个控件公司组织结构:员工 ← 部门 ← 公司将对象组成树形结构,客户端可以“统一操作”叶子节点与中间节点。统一接口,客户端无差别调用树结构天然适合层次建模扩展方便,添加新节点只需实现 Component。原创 2025-04-17 19:51:47 · 1043 阅读 · 0 评论 -
设计模式每日硬核训练 Day 13:桥接模式(Bridge Pattern)完整讲解与实战应用
桥接模式解决的正是:**多维变化下,避免子类组合爆炸,将每个维度封装为独立模块,通过桥接连接。**原创 2025-04-16 15:22:32 · 1135 阅读 · 0 评论 -
设计模式每日硬核训练 Day 12:装饰器模式(Decorator Pattern)完整讲解与实战应用
将对象进行包装,在其行为之前/之后添加额外逻辑。避免子类膨胀(继承爆炸),提升灵活性与组合性。原创 2025-04-15 14:06:35 · 1079 阅读 · 0 评论 -
设计模式每日硬核训练 Day 11:适配器模式(Adapter Pattern)完整讲解与实战应用
适配器模式用于将一个已有接口转换为客户所期望的另一个接口,使原本由于接口不兼容而不能一起工作的类能协同工作。“旧接口 + 新系统 = 用适配器来衔接”原创 2025-04-14 10:33:29 · 646 阅读 · 0 评论 -
设计模式 Day 10:模板方法模式(Template Method Pattern)完整讲解与实战应用
代码复用性高:流程写一遍,子类共享结构扩展灵活:只需重写步骤函数即可扩展新行为强制执行顺序:子类无法篡改流程结构。原创 2025-04-13 08:53:47 · 641 阅读 · 0 评论 -
设计模式 Day 9:命令模式(Command Pattern)完整讲解与实战应用
将请求排队将请求记命令模式我们在设备控制系统中使用得较多,例如遥控器设置不同按键指令时,通过封装命令类(Command),将操作与实际执行者解耦,便于我们记录命令、支持批量执行、撤销重做等功能。录日志支持命令撤销、重做实现请求者与执行者的解耦。原创 2025-04-12 09:56:48 · 704 阅读 · 0 评论 -
设计模式 Day 8:策略模式(Strategy Pattern)完整讲解与实战应用
策略模式(Strategy Pattern)是行为型设计模式中最具“切换能力”的一个,它的设计哲学非常明确:> **将算法(行为)抽象为可替换的策略,使得行为的改变不依赖于使用它的对象本身。**策略模式特别适合处理:- 多种业务逻辑切换(如支付方式)- 动态选择不同算法(如压缩、路径规划)- 可扩展、可配置的“策略中心”原创 2025-04-11 14:27:06 · 1258 阅读 · 0 评论 -
设计模式 Day 7:从全局设计视角彻底理解观察者模式(角色定位 + 理论深化 + 项目实战)
观察者模式定义了对象之间的一对多依赖关系,使得当一个对象状态发生变化时,所有依赖于它的对象都会自动收到通知并做出更新。观察者模式是事件驱动编程的基础设施,核心在于事件源与响应者的低耦合连接。原创 2025-04-10 10:08:33 · 1088 阅读 · 0 评论 -
设计模式 Day 1:单例模式(Singleton Pattern)详解
设计模式学习不在于一蹴而就,而在于持续积累与反复思考。本篇作为设计模式学习计划的第一天内容,旨在通过结构化讲解帮助读者牢牢掌握单例模式的核心思想与使用方法。后续每日将采用“”的方式推进,这样开篇,一方面帮助读者快速回忆 Day 1,另一方面也自然引出了 Day 2 的学习重点。原创 2025-03-30 21:20:28 · 475 阅读 · 0 评论 -
设计模式 Day 6:深入讲透观察者模式(真实场景 + 回调机制 + 高级理解)
观察者模式的核心,是在被观察者状态变化时通知所有关心它的对象,从而构建一个低耦合、响应式的通知机制。模块要素说明Subject状态持有者,触发变化Observer回调函数实体,响应变化通知机制connect → 回调列表 → notify 调用解耦点无需知道观察者是谁,只要通知实现方式函数指针 / lambda / bind / signal“观察者模式通过回调机制建立一对多解耦通道,实现状态联动与模块协作。原创 2025-04-09 11:26:55 · 1023 阅读 · 0 评论 -
设计模式 Day 5:夯实观察者模式(Boost & 实战精讲)
*观察者模式(Observer Pattern)**定义对象之间的一对多依赖关系,使得当一个对象状态发生变化时,所有依赖于它的对象都会被自动通知和更新。观察者模式是设计模式中应用最广、最接地气的一种。原创 2025-04-08 10:20:38 · 1078 阅读 · 0 评论 -
设计模式 Day 4:观察者模式(Observer Pattern)深度解析
中文释义在对象间建立一种一对多的依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。设计哲学松耦合原则:主题与观察者之间通过抽象接口交互开闭原则:新增观察者无需修改主题代码事件驱动架构:状态变化触发连锁反应核心价值:建立松耦合的对象间动态依赖关系实现要点定义清晰的Subject-Observer接口管理观察者注册机制合理选择推/拉模型适用场景事件驱动架构跨模块状态同步需要广播通知的场合。原创 2025-04-07 15:25:28 · 959 阅读 · 0 评论 -
设计模式 Day 3:抽象工厂模式(Abstract Factory Pattern)详解
抽象工厂模式提供一个接口,用于创建一系列相关或相互依赖的对象,而无需指定它们具体的类。关键词:“一系列相关对象” → 产品族。原创 2025-04-06 19:11:26 · 883 阅读 · 0 评论 -
设计模式 Day 2:工厂方法模式(Factory Method Pattern)详解
满足开闭原则:新增产品时只需添加新工厂和产品类,无需改动原有逻辑。屏蔽具体产品类,解耦创建逻辑与使用逻辑。场景原因日志模块支持多种输出方式控制台、文件、网络输出分开实现图像加载库支持多种格式不同格式(PNG/JPEG/GIF)封装为产品类数据库驱动连接MySQL/PostgreSQL/SQLite 等切换方便。原创 2025-03-31 11:43:11 · 1010 阅读 · 0 评论