69 | 访问者模式(下):为什么支持双分派的语言不需要访问者模式?
68 | 访问者模式(上):手把手带你还原访问者模式诞生的思维过程
67 | 迭代器模式(下):如何设计实现一个支持“快照”功能的iterator?
66 | 迭代器模式(中):遍历集合的同时,为什么不能增删集合元素?
65 | 迭代器模式(上):相比直接遍历集合数据,使用迭代器有哪些优势?
64 | 状态模式:游戏、工作流引擎中常用的状态机是如何实现的?
63 | 职责链模式(下):框架中常用的过滤器、拦截器是如何实现的?
62 | 职责链模式(上):如何实现可灵活扩展算法的敏感信息过滤框架?
61 | 策略模式(下):如何实现一个支持给不同大小文件排序的小程序?
60 | 策略模式(上):如何避免冗长的if-else/switch分支判断代码?
59 | 模板模式(下):模板模式与Callback回调函数有何区别和联系?
58 | 模板模式(上):剖析模板模式在JDK、Servlet、JUnit等中的应用
57 | 观察者模式(下):如何实现一个异步非阻塞的EventBus框架?
56 | 观察者模式(上):详解各种应用场景下观察者模式的不同实现方式
55 | 享元模式(下):剖析享元模式在Java Integer、String中的应用
54 | 享元模式(上):如何利用享元模式优化文本编辑器的内存占用?
53 | 组合模式:如何设计实现支持递归遍历的文件系统目录树结构?
52 | 门面模式:如何设计合理的接口粒度以兼顾接口的易用性和通用性?
51 | 适配器模式:代理、适配器、桥接、装饰,这四个模式有何区别?
50 | 装饰器模式:通过剖析Java IO类库源码学习装饰器模式