用途:这是一份 TypeScript 设计模式的实现参考,覆盖 22 个 GoF 模式,分为创建型(5)、结构型(7)、行为型(10)三类。每个模式文件记录意图、问题、解决方案、适用性、可运行示例、实现步骤、优缺点及与相关模式的关系,旨在作为结构性决策的词汇表而非强制规范。
主要使用场景:通过继承变得臃肿的类(组合式子类、按类型分支、上帝类)的重构;设计协作方尚未固定的新模块;集成不兼容的第三方 API 或遗留类;建模树形结构;运行时添加日志、缓存、鉴权等横切行为;按配置选择算法;实现撤销/重做、历史快照、事务回滚或操作排队;协调对象间复杂引用;事件通知与响应式数据流;以及把隐式模式(大型 switch、平行类层次、重复算法骨架)显式化。
使用方式:先读快速参考,判断问题形状匹配哪个模式的意图;再打开 references/{category}-{pattern}.md,确认意图后阅读适用性与“何时不使用”再采用;示例使用教学命名(ConcreteStrategyA、Receiver 等),合并前应改为领域术语;最后查看每个条目末尾的相关模式。
模式速查:创建型含工厂方法、抽象工厂、建造者、原型、单例;结构型含适配器、桥接、组合、装饰器、外观、享元、代理;行为型含责任链、命令、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者。
易混模式区分:适配器改接口,外观简化子系统,代理保接口控访问,装饰器保接口加行为;策略与状态的区别在于状态对象互相知晓并触发转换;策略用组合可运行时切换,模板方法用继承编译期固定;工厂方法返回单一产品,抽象工厂返回产品族,建造者逐步组装复杂产品。
相关技能:implementation-functional-patterns 提供对应的函数式方案,在引入新类层次前可参考。
限制:本文档为模式实现参考,未提供安装命令、收费信息或具体平台信息;示例为教学用途,实际命名与集成需按项目调整。