mcpField
D
design-patterns

design-patterns

github.com/krzysztofsurdy开发2761 次安装2 周前更新
代码仓库

关于 design-patterns

面向开发者的设计模式参考技能,按创建型、结构型和行为型整理模式说明,并涵盖多种语言的实现、UML 指引及实际用途。还提供模式选择建议与实践原则。

主要功能

  1. 01按意图分类的模式目录
  2. 02涵盖 26 种设计模式
  3. 03多种语言实现参考
  4. 04UML 指引与实际用途
  5. 05模式选择建议与实践原则

适用场景

  1. 01为具体设计问题选择模式
  2. 02比较不同模式的适用场景
  3. 03参考模式实现和 UML
  4. 04评估模式是否增加不必要复杂度

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/krzysztofsurdy/code-virtuoso --skill design-patterns

安装后在 Claude Code 中输入/design-patterns确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
abstract-factory.md
adapter.md
bridge.md
builder.md
chain-of-responsibility.md
command.md
composite.md
decorator.md
facade.md
factory-method.md
flyweight.md
interpreter.md
iterator.md
mediator.md
memento.md
null-object.md
object-pool.md
observer.md
private-class-data.md
prototype.md
proxy.md
singleton.md
state.md
strategy.md
template-method.md
visitor.md

详细介绍

设计模式

按意图(创建型、结构型、行为型)组织的 26 种设计模式参考,包含 PHP、Python、Java、C++ 等语言的实现、UML 指南和实用案例。

模式索引

创建型模式
  • Abstract Factory - 创建一系列相关对象,而无需指定其具体类 → 参考
  • Builder - 通过逐步构建的过程组装复杂对象 → 参考
  • Factory Method - 声明一个用于创建对象的接口,让子类决定具体类型 → 参考
  • Prototype - 复制现有对象,而不与其具体类耦合 → 参考
  • Singleton - 确保一个类只有一个实例 → 参考
  • Object Pool - 回收创建成本高的对象,以便重复使用 → 参考
结构型模式
  • Adapter - 将一种接口转换为客户端所需的另一种接口 → 参考
  • Bridge - 将抽象与其实现分离,使两者可以独立演进 → 参考
  • Composite - 将对象组织成树形结构,以便统一处理 → 参考
  • Decorator - 通过包装动态地为对象添加新行为 → 参考
  • Facade - 为复杂子系统提供简单接口 → 参考
  • Flyweight - 通过在多个对象间共享公共状态来减少内存占用 → 参考
  • Proxy - 通过替代对象管理对对象的访问 → 参考
  • Private Class Data - 限制对类属性的访问 → 参考
行为型模式
  • Chain of Responsibility - 通过处理器链路由请求 → 参考
  • Command - 将请求表示为独立对象 → 参考
  • Interpreter - 建立语法表示及其解释器 → 参考
  • Iterator - 遍历元素,同时不暴露底层结构 → 参考
  • Mediator - 通过中央协调器理清依赖关系 → 参考
  • Memento - 在不破坏封装的前提下保存并恢复对象状态 → 参考
  • Null Object - 提供一个无操作的默认对象,以消除空值检查 → 参考
  • Observer - 状态变化时自动通知依赖对象 → 参考
  • State - 在内部状态转换时改变行为 → 参考
  • Strategy - 使算法可以在运行时互换 → 参考
  • Template Method - 定义算法骨架,并由子类实现具体步骤 → 参考
  • Visitor - 在不修改对象类的情况下为对象添加操作 → 参考

何时使用哪种模式

问题模式
需要创建一组相关对象抽象工厂
构建选项繁多的复杂对象建造者
希望将实例化延迟到子类工厂方法
需要复制复杂对象原型
需要确保全局只有一个实例单例
需要让不兼容的接口协同工作适配器
希望独立改变抽象和实现桥接
需要统一处理树形结构组合
无需创建子类即可动态添加职责装饰器
简化复杂子系统的接口外观
许多相似对象消耗过多内存享元
控制访问、添加延迟加载或记录访问日志代理
需要为请求设置多个处理程序,但不确定由哪个处理责任链
需要对操作进行排队、记录或撤销命令
需要解释简单的语言或语法解释器
遍历集合,同时不暴露其内部结构迭代器
需要降低多个通信对象之间的耦合中介者
需要撤销或快照功能备忘录
一对多事件通知观察者
对象行为取决于其状态状态
需要在运行时切换算法策略
可自定义步骤的算法骨架模板方法
无需修改对象结构即可添加操作访问者

最佳实践

  • 优先选择组合而非继承:在构建深层类层次结构之前,先考虑装饰器、策略或桥接模式
  • 将模式用于实际问题,而非假设的问题
  • 在适用时使用语言的现代特性:用枚举表示状态,用不可变值类型表示值对象,用一等函数实现策略
  • 在合适时组合使用模式(例如,建造者 + 流畅接口、策略 + 工厂方法)
  • 尽量精简模式实现。如果模式带来的复杂性超过其消除的复杂性,请重新考虑是否使用

评论

支持 Markdown