会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
咖啡八杯
博客园
首页
新随笔
联系
订阅
管理
1
2
3
下一页
2026年7月23日
GoF设计模式——访问者模式
摘要: 本文是【GoF设计模式】系列第23篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要访问者模式? 假设一个文档系统里有段落、图片、表格三类元素,要导出 HTML 和 Markdown 两种格式。最直接的写法是把导出逻辑塞进每个元素类: class Paragraph { String toHtm
阅读全文
posted @ 2026-07-23 22:16 咖啡八杯
阅读(20)
评论(0)
推荐(0)
2026年7月21日
GoF设计模式——解释器模式
摘要: []> 本文是【GoF设计模式】系列第22篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要解释器模式? 假设营销系统要判断用户是否符合优惠活动资格,规则是"用户年龄 > 18 且 积分 > 100"。最直接的写法是 if-else: public boolean check(User user
阅读全文
posted @ 2026-07-21 23:27 咖啡八杯
阅读(119)
评论(0)
推荐(1)
解释器模式前置:文法、BNF与AST
摘要: 本文是【GoF设计模式】系列第22篇的前置知识,更多内容欢迎关注公众号:咖啡八杯 前言 解释器模式是 GoF 23 种设计模式中公认比较难理解的一个。它的难不在代码本身,而在前置概念——文法和 AST(抽象语法树)。如果不先搞懂这两个概念,直接看解释器模式的代码会一头雾水。 本文从零开始,用数学表达
阅读全文
posted @ 2026-07-21 23:25 咖啡八杯
阅读(15)
评论(0)
推荐(0)
2026年7月16日
GoF设计模式——责任链模式
摘要: 本文是【GoF设计模式】系列第21篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要责任链模式? 假设要实现一个请假审批功能:1 天以内组长批,3 天以内经理批,7 天以内总监批,7 天以上总经理批。最直接的写法是在审批方法里堆一串 if-else: public void approve(Le
阅读全文
posted @ 2026-07-16 23:13 咖啡八杯
阅读(28)
评论(0)
推荐(0)
2026年7月14日
GoF设计模式——状态模式
摘要: 本文是【GoF设计模式】系列第20篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要状态模式? 假设正在实现电商订单系统,订单有五种状态:待支付、已支付、已发货、已完成、已取消。每种状态下可执行的操作都不一样——待支付可以支付、可以取消;已发货只能确认收货;已完成不能再动。没有状态模式的时候,代
阅读全文
posted @ 2026-07-14 23:26 咖啡八杯
阅读(23)
评论(0)
推荐(0)
2026年7月9日
GoF设计模式——迭代器模式
摘要: 本文是【GoF设计模式】系列第19篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要迭代器模式? 假设需要写一个"打印集合所有元素"的方法,业务里存在三种集合:数组、自定义链表、HashMap。没有统一的遍历接口时,客户端只能这么写: // 遍历数组:用下标 public void printA
阅读全文
posted @ 2026-07-09 22:09 咖啡八杯
阅读(11)
评论(0)
推荐(0)
2026年7月7日
GoF设计模式——模板方法模式
摘要: 本文是【GoF设计模式】系列第18篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要模板方法模式? 假设正在做一个数据导出功能,需要支持 Excel、PDF、CSV 三种格式。每种格式的导出流程都是读数据 → 格式化 → 写文件 → 关闭资源,仅"格式化"这一步的实现不同。最直觉的写法是每个导出
阅读全文
posted @ 2026-07-07 22:12 咖啡八杯
阅读(17)
评论(0)
推荐(0)
2026年7月2日
GoF设计模式——备忘录模式
摘要: 本文是【GoF设计模式】系列第17篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要备忘录模式? 假设正在做一个文本编辑器,需要支持 Ctrl+Z 撤销功能。最直觉的写法是每次修改前把整个 Editor 对象的内部字段抄一份出来放到栈里: class Editor { public String
阅读全文
posted @ 2026-07-02 21:55 咖啡八杯
阅读(143)
评论(0)
推荐(0)
2026年6月30日
GoF设计模式——中介者模式
摘要: 本文是【GoF设计模式】系列第15篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要中介者模式? 假设在设计一个智能家居系统,家里有空调、窗帘、灯三种设备。业务规则是:空调开启时自动关闭窗帘(避免冷气流失),窗帘关闭时自动开灯(补充采光)。 最直觉的写法是让设备之间直接互相调用: class A
阅读全文
posted @ 2026-06-30 23:30 咖啡八杯
阅读(134)
评论(0)
推荐(1)
2026年6月25日
GoF设计模式——命令模式
摘要: 本文是【GoF设计模式】系列第15篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要命令模式? 想象一个文本编辑器的撤销功能:用户输入了一段文字,然后按 Ctrl+Z 撤销。最直觉的写法是在每个操作方法里保存历史状态: class TextEditor { private StringBuild
阅读全文
posted @ 2026-06-25 22:26 咖啡八杯
阅读(23)
评论(0)
推荐(0)
1
2
3
下一页
公告