摘要:
本文是【GoF设计模式】系列第15篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要中介者模式? 假设在设计一个智能家居系统,家里有空调、窗帘、灯三种设备。业务规则是:空调开启时自动关闭窗帘(避免冷气流失),窗帘关闭时自动开灯(补充采光)。 最直觉的写法是让设备之间直接互相调用: class A 阅读全文
摘要:
本文是【GoF设计模式】系列第14篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要策略模式? 电商网站结算时常常要算优惠:新用户满减、不同等级会员打折、节日活动满减。最直觉的写法是把所有规则塞进一个方法里用 if-else 区分: class Cashier { public int calc 阅读全文
摘要:
本文是【GoF设计模式】系列第11篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要组合模式? 假设在做一个文件管理系统,需要统计某个文件夹的总大小。文件夹里有文件,也有子文件夹,子文件夹里还有文件和文件夹——这是一棵递归的树。 如果文件和文件夹是两个完全不同的类,代码会变成这样: if (no 阅读全文