用途:该技能把《设计模式》中的 23 个 GoF 模式整理成一份决策指南。先识别代码症状或目标,选出合适的模式,再查阅对应参考文件获取结构配方。
主要能力:
- 按症状选择:如对象类型上的 if/else 或 switch 可选 Strategy、Visitor;对象状态上的分支可选 State;构造器参数过长可选 Builder;子类组合爆炸可选 Decorator、Strategy、Bridge;散落的 new 具体类可选 Factory Method、Abstract Factory;硬编码类名可选 Factory Method、Prototype;子系统复杂度外泄可选 Facade;复杂的多对多通信可选 Mediator;手动向多个依赖方传播状态可选 Observer;子类间算法结构重复可选 Template Method;大量条件路由请求可选 Chain of Responsibility;大量细粒度对象导致内存开销高可选 Flyweight。
- 按目标选择:隐藏对象创建、保证全局唯一实例、让不兼容接口协同、解耦抽象与实现、统一对待个体与组合、动态添加行为、简化子系统 API、控制对象访问、使请求可撤销/排队/记录、遍历集合、封装可互换算法、随内部状态改变行为、自动通知依赖方、为稳定结构添加操作等,分别对应相应模式。
- 相似模式区分:Strategy 与 Template Method(组合 vs 继承)、State 与 Strategy(状态自行转换 vs 客户端选择)、Adapter 与 Facade(适配单个类 vs 简化整个子系统)、Decorator 与 Proxy(添加行为 vs 控制访问)、Factory Method 与 Abstract Factory(单一产品 vs 产品族)、Command 与 Chain of Responsibility(封装并调用动作 vs 将请求路由给处理者)。
- 模式分类:创建型 5 个、结构型 7 个、行为型 11 个。
使用方式:通过本指南选择模式后,读取 ${CLAUDE_SKILL_DIR}/references/ 下的对应参考文件:foundations.md 讲 GoF 原则,techniques.md 含主表、模式关系与替代方案决策指南,gof-<pattern-name>.md 含结构、参与者、适用时机、后果与示例。SKILL.md 用于选择,参考文件用于执行。
适用场景:在重构或新设计时判断该用哪个模式,或需要在几个相似模式之间做取舍。
限制:资料明确提醒,每个模式都会增加间接层,仅在问题真正反复出现、模式带来的灵活性超过额外类与接口的代价、团队能维护这种间接性时才使用;“如果直截了当的方案可行,就用它。” 该资料未提供具体代码示例与安装步骤。