摘要: 本文是【GoF设计模式】系列第15篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要中介者模式? 假设在设计一个智能家居系统,家里有空调、窗帘、灯三种设备。业务规则是:空调开启时自动关闭窗帘(避免冷气流失),窗帘关闭时自动开灯(补充采光)。 最直觉的写法是让设备之间直接互相调用: class A 阅读全文
posted @ 2026-06-30 23:30 咖啡八杯 阅读(86) 评论(0) 推荐(1)
摘要: 本文是【GoF设计模式】系列第15篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要命令模式? 想象一个文本编辑器的撤销功能:用户输入了一段文字,然后按 Ctrl+Z 撤销。最直觉的写法是在每个操作方法里保存历史状态: class TextEditor { private StringBuild 阅读全文
posted @ 2026-06-25 22:26 咖啡八杯 阅读(12) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列第14篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要策略模式? 电商网站结算时常常要算优惠:新用户满减、不同等级会员打折、节日活动满减。最直觉的写法是把所有规则塞进一个方法里用 if-else 区分: class Cashier { public int calc 阅读全文
posted @ 2026-06-23 22:21 咖啡八杯 阅读(164) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列第13篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要观察者模式? 假设在做一个气象监测系统,一个气象站(主题)负责采集温度、湿度、气压,多个展示面板(观察者)需要实时展示这些数据——一块在当前页面显示实时数值,一块画历史曲线图,还有一块做预警提示。 最直觉的写法是 阅读全文
posted @ 2026-06-18 23:00 咖啡八杯 阅读(19) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列第12篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要享元模式? 假设要做一个文字处理软件,一篇 10 万字的文档,每个字符都有字体、字号、颜色等格式属性。如果每个字符都独立存储一份格式对象,就要创建 10 万个格式对象——其中大量对象的属性完全相同(比如正文都是" 阅读全文
posted @ 2026-06-16 23:02 咖啡八杯 阅读(17) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列第11篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要组合模式? 假设在做一个文件管理系统,需要统计某个文件夹的总大小。文件夹里有文件,也有子文件夹,子文件夹里还有文件和文件夹——这是一棵递归的树。 如果文件和文件夹是两个完全不同的类,代码会变成这样: if (no 阅读全文
posted @ 2026-06-11 23:24 咖啡八杯 阅读(13) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列第10篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要桥接模式? 假设要做一个图形编辑器,有圆形、矩形、三角形三种图形,每种图形又要支持红色、蓝色、黄色三种颜色。用继承来实现,就要写 RedCircle、BlueCircle、RedRectangle、BlueRec 阅读全文
posted @ 2026-06-09 22:42 咖啡八杯 阅读(24) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列第9篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要外观模式? 开发中经常遇到这种情况:一个业务操作需要依次调用多个子系统。比如"启动系统"要先初始化数据库连接、加载配置文件、启动缓存服务、注册定时任务——每个子系统都有自己的接口和调用顺序,漏掉一步或顺序错误都会导 阅读全文
posted @ 2026-06-04 22:02 咖啡八杯 阅读(24) 评论(1) 推荐(0)
摘要: 本文是【GoF设计模式】系列第8篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要装饰模式? 假设经营一家咖啡店,有基础咖啡和浓缩咖啡两种基底。顾客可以加牛奶、加糖、加珍珠……如果用继承来实现每一种组合,会得到 MilkCoffee、SugarCoffee、MilkSugarCoffee、Pea 阅读全文
posted @ 2026-06-02 23:10 咖啡八杯 阅读(17) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列第7篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要代理模式? 有时候我们不能或不想直接访问某个对象。比如对象创建开销很大需要延迟加载,或者需要在访问前做权限检查,或者需要记录访问日志。直接在业务代码中掺杂这些逻辑会让代码臃肿且难以维护。 代理模式通过引入一个中间层 阅读全文
posted @ 2026-05-28 22:00 咖啡八杯 阅读(122) 评论(0) 推荐(1)