mcpField
S
strategy-pattern

strategy-pattern

github.com/dev-toolings开发22778 次安装3 周前更新
代码仓库

关于 strategy-pattern

面向 Symfony 开发的策略模式技能,指导将可互换算法拆分为独立实现,并在运行时选择。涵盖服务标记、注入、优先级、回退策略和测试。

主要功能

  1. 01定义策略接口与实现
  2. 02通过 AutowireIterator 或 AutowireLocator 注入
  3. 03配置优先级与回退策略
  4. 04测试单个策略和选择器

适用场景

  1. 01按运行时条件选择支付提供方
  2. 02在多种导出格式间切换
  3. 03替换不断扩大的类型分支

安装

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

$npx skills add https://github.com/dev-toolings/superpowers-symfony --skill strategy-pattern

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

附带文件reference.md

详细介绍

策略模式(Symfony)

适用场景

  • 某项操作有多种可互换的算法,需要在运行时选择,例如支付提供商或导出格式。
  • 按类型字符串执行的 switch 或 match 不断增大。
  • 添加新变体时,必须避免修改负责选择它们的代码。

默认工作流

  1. 定义策略接口,并为每种策略提供 supports() 方法或一个键。
  2. 通过接口或各个类上的 #[AutoconfigureTag] 为每个实现添加标签。
  3. 注入这些实现:使用 #[AutowireIterator] 按顺序逐一尝试,或使用 #[AutowireLocator] 按键获取。
  4. 在评估顺序很重要时设置优先级,并注册一个回退策略。
  5. 单独测试每种策略,并使用伪对象测试选择器。

防护措施

  • 当没有策略支持输入时,选择器应明确失败。
  • 保持策略无状态,且彼此独立。
  • 对于不会增加的两种情况,无需使用此模式:使用 match 即可。

渐进式展开

  • 使用此文件了解执行方式和风险控制。
  • 需要深入了解实现细节时,再打开参考资料。

输出约定

  • 接口及其带标签的实现。
  • 选择器,包括其顺序和回退策略。
  • 每种策略的测试,以及无匹配项时的测试。

参考资料

  • reference.md

评论

支持 Markdown