极客充电队在2025年9月28日进行了首次读书活动分享,极客充电队本次计划集体阅读《Head First 设计模式》第二版,梳理自己对于设计模式的认识,温故而知新,在理论结合实际过程中加深对于设计模式的理解。
第一章主要介绍了设计模式的基本概念、重要原则以及策略模式的具体应用。
书中是通过一个简单的鸭子模拟应用案例展开,最初的设计是使用继承来实现鸭子的各种行为,但随着需求的变化,如要给不同鸭子添加飞行行为,且并非所有鸭子都能飞行,这种继承方式暴露出诸多问题,如代码重复、难以维护、运行时难以改变等。在面临这些问题的时候,一遍又一遍修改代码不是长久之计,古语言:以不变应万变,需要从变化中寻找不变的部分并"分离"这两部分内容。那么,我们应该如何做呢?
这一章中提出了三个面向对象设计的原则(还有另外四个,应该会在后续章节中介绍)
第一章中提到了“策略模式”,并以这个模式为例解决鸭子产品研发过程中的难题。
除了分享书中的内容,还组织大家现场按照UML编写实际代码:

设计模式有什么价值呢?
“策略模式”在特来电充电业务有没有应用呢?策略模式关注的是对于算法的封装和切换,在研发熔断降级功能的时候就遇到过这个场景。比如说A场景和B场景都需要熔断降级,但是熔断降级有很多种不同的方式和算法,A场景需要的是异常调用数量达到某个阈值后熔断,B场景调用中是要求有个专用检测接口,只要检测接口没有问题就不熔断,检测接口调用超时就直接熔断。这两种熔断需求可以说本质上是一样,但是实现方法差别很大,因此就专门将按照异常计数熔断和按照旁路检测熔断做成了两种熔断策略,在使用过程中可以选择性配置熔断策略,触发不同的异常检测逻辑。
关于这部分内容概要总结为UML:
