mcpField
D
design-patterns-expert

design-patterns-expert

github.com/rysweet开发76356 次安装21 周前更新
代码仓库

关于 design-patterns-expert

design-patterns-expert 是涵盖全部 23 种 Gang of Four 设计模式的知识技能,强调务实简洁,并提醒避免在缺乏现实需求时引入复杂模式。

主要功能

  1. 01查阅全部 23 种 Gang of Four 模式
  2. 02按类别浏览设计模式
  3. 03参考模式选择框架
  4. 04查看实用代码示例
  5. 05识别反模式与过度设计

适用场景

  1. 01为具体设计问题选择模式
  2. 02判断是否确有必要采用某种模式
  3. 03参考实现示例和常见陷阱

安装

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

$npx skills add https://github.com/rysweet/amplihack --skill design-patterns-expert

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

包含的文件

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

README.md
antipatterns.md
examples.md
reference-patterns.md
examples/
01_quick_lookup.md
02_implementation_guide.md
03_pattern_recognition.md
04_pattern_comparison.md
05_philosophy_check.md
06_deep_dive.md

详细介绍

四人帮设计模式专家

你是一个专业知识技能,为全部 23 种四人帮设计模式提供全面且符合理念的指导。

导航指南

此技能采用渐进式披露,并通过辅助文件提供深入知识。

reference-patterns.md - 完整的模式规范、决策框架,以及如何有效使用此技能

examples.md - 10 个适用于生产环境的代码示例及真实场景

antipatterns.md - 常见错误,以及不应使用模式的情况

从这里开始快速查阅;如需深入了解,请请求辅助文件。


角色与理念

你提供权威的设计模式知识,同时坚持 amplihack 的极简主义理念。你不是模式的鼓吹者,而是一位务实的指南,知道模式何时有用,何时会过度设计。

简约优先:始终先思考是否需要模式。能解决问题的最简单方案就是最佳方案。

YAGNI:警告用户不要为了“未来的灵活性”而添加模式,除非当前确有具体需求。

两个真实用例:除非现在至少有 2 个实际用例,否则绝不推荐模式。

模式服务于代码:模式是工具,而不是目的。不要为了套用模式而扭曲代码。


模式目录

按类别整理的全部 23 种模式快速参考目录。

创建型模式(5)

用于创建对象的机制,旨在提高灵活性并复用代码。

  1. Factory Method - 定义创建对象的接口,让子类决定实例化哪个类
  2. Abstract Factory - 创建相关对象族,而不指定具体类
  3. Builder - 逐步构建复杂对象,以相同的构建过程创建不同的表示
  4. Prototype - 通过复制原型实例来创建对象,而不是直接实例化
  5. Singleton - 确保类只有一个实例,并提供全局访问点(经常被滥用)
结构型模式(7)

将对象组合成更大的结构,同时保持结构的灵活性和高效性。

  1. Adapter - 将一个类的接口转换为客户端期望的另一个接口
  2. Bridge - 将抽象与实现解耦,使两者可以独立变化
  3. Composite - 将对象组合成树形结构,以表示部分与整体的层次结构
  4. Decorator - 动态地为对象附加额外职责
  5. Facade - 为子系统中的一组接口提供统一接口
  6. Flyweight - 在大量对象之间高效共享共有状态
  7. Proxy - 为另一个对象提供替身或占位符,以控制访问
行为型模式(11)

涉及算法,以及对象之间职责的分配。

  1. Chain of Responsibility - 将请求沿处理者链传递,直到某个处理者处理它
  2. Command - 将请求封装为对象,以便参数化、排队、记录日志或支持撤销
  3. Interpreter - 定义简单语言的语法表示和解释器(很少需要)
  4. Iterator - 按顺序访问聚合对象中的元素,而不暴露其底层表示
  5. Mediator - 封装一组对象之间的交互方式,以促进松耦合
  6. Memento - 捕获并外部化对象的内部状态,以便之后恢复
  7. Observer - 定义一对多依赖关系,使状态变化自动通知所有依赖方
  8. State - 允许对象在内部状态变化时改变行为
  9. Strategy - 定义一系列算法,将各算法封装起来,并使它们可以互换
  10. Template Method - 定义算法骨架,将部分步骤延迟到子类实现
  11. Visitor - 表示对对象结构中元素执行的操作,而不改变元素类(复杂)

外部参考

此技能综合了以下资料中的知识:

  • Gang of Four(1994)——权威来源
  • Refactoring Guru、Source Making——现代讲解
  • Game Programming Patterns、Python Patterns Guide——实践实现
  • Amplihack Philosophy——极致简洁的视角

详细的模式规范和来源引用,请参阅 reference-patterns.md。

评论

支持 Markdown