摘要: 本文是【GoF设计模式】系列的总览篇,可以快速了解23种经典设计模式的分类、意图、核心思想、适用场景。如果想深入学习某一模式,可关注本系列种的详细文章。 什么是设计模式 设计模式是软件开发中被反复验证过的、针对特定问题的通用解决方案。1994年,Erich Gamma、Richard Helm、Ra 阅读全文
posted @ 2026-07-30 23:09 咖啡八杯 阅读(14) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列的前置篇,更多内容欢迎关注公众号:咖啡八杯 前言 本篇可以当做设计模式学习前的入门,也可以当成设计模式学习后的复习。 先看一段典型的"面条代码": // 一个臃肿的 UserService:校验、持久化、通知、日志全堆在一起 public class UserServic 阅读全文
posted @ 2026-07-28 23:39 咖啡八杯 阅读(18) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列第23篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要访问者模式? 假设一个文档系统里有段落、图片、表格三类元素,要导出 HTML 和 Markdown 两种格式。最直接的写法是把导出逻辑塞进每个元素类: class Paragraph { String toHtm 阅读全文
posted @ 2026-07-23 22:16 咖啡八杯 阅读(25) 评论(0) 推荐(0)
摘要: []> 本文是【GoF设计模式】系列第22篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要解释器模式? 假设营销系统要判断用户是否符合优惠活动资格,规则是"用户年龄 > 18 且 积分 > 100"。最直接的写法是 if-else: public boolean check(User user 阅读全文
posted @ 2026-07-21 23:27 咖啡八杯 阅读(128) 评论(0) 推荐(1)
摘要: 本文是【GoF设计模式】系列第22篇的前置知识,更多内容欢迎关注公众号:咖啡八杯 前言 解释器模式是 GoF 23 种设计模式中公认比较难理解的一个。它的难不在代码本身,而在前置概念——文法和 AST(抽象语法树)。如果不先搞懂这两个概念,直接看解释器模式的代码会一头雾水。 本文从零开始,用数学表达 阅读全文
posted @ 2026-07-21 23:25 咖啡八杯 阅读(17) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列第21篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要责任链模式? 假设要实现一个请假审批功能:1 天以内组长批,3 天以内经理批,7 天以内总监批,7 天以上总经理批。最直接的写法是在审批方法里堆一串 if-else: public void approve(Le 阅读全文
posted @ 2026-07-16 23:13 咖啡八杯 阅读(45) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列第20篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要状态模式? 假设正在实现电商订单系统,订单有五种状态:待支付、已支付、已发货、已完成、已取消。每种状态下可执行的操作都不一样——待支付可以支付、可以取消;已发货只能确认收货;已完成不能再动。没有状态模式的时候,代 阅读全文
posted @ 2026-07-14 23:26 咖啡八杯 阅读(31) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列第19篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要迭代器模式? 假设需要写一个"打印集合所有元素"的方法,业务里存在三种集合:数组、自定义链表、HashMap。没有统一的遍历接口时,客户端只能这么写: // 遍历数组:用下标 public void printA 阅读全文
posted @ 2026-07-09 22:09 咖啡八杯 阅读(13) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列第18篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要模板方法模式? 假设正在做一个数据导出功能,需要支持 Excel、PDF、CSV 三种格式。每种格式的导出流程都是读数据 → 格式化 → 写文件 → 关闭资源,仅"格式化"这一步的实现不同。最直觉的写法是每个导出 阅读全文
posted @ 2026-07-07 22:12 咖啡八杯 阅读(20) 评论(0) 推荐(0)
摘要: 本文是【GoF设计模式】系列第17篇,更多内容欢迎关注公众号:咖啡八杯 前言 为什么需要备忘录模式? 假设正在做一个文本编辑器,需要支持 Ctrl+Z 撤销功能。最直觉的写法是每次修改前把整个 Editor 对象的内部字段抄一份出来放到栈里: class Editor { public String 阅读全文
posted @ 2026-07-02 21:55 咖啡八杯 阅读(147) 评论(0) 推荐(0)