SuperAPI AI 工具集

strategy-pattern

通用与其它

查看项目

更新于 10-15 21:08

技能介绍

用途:当同一操作存在多种可互换算法、需要在运行时选择(例如支付提供商、导出格式),或对类型字符串的 switch/match 不断增长、希望新增变体时无需修改选择代码,可使用本技能在 Symfony 中实现策略模式。

主要能力与用法:定义策略接口,为每个策略提供 supports() 方法或一个键;通过接口或各类上的 #[AutoconfigureTag] 为所有实现打标签;用 #[AutowireIterator] 注入并按顺序逐个尝试,或用 #[AutowireLocator] 按键获取单个策略;在评估顺序重要时设置优先级,并注册回退策略;对每个策略单独测试,并用假对象测试选择器。

输出契约:接口及其带标签的实现;选择器(含顺序与回退);每个策略的测试以及无匹配情况的测试。

限制与护栏:无策略支持输入时选择器应显式失败;策略应保持无状态且彼此独立;只有两个且不会增长的变体不需要该模式,用 match 即可。

其他:执行姿态与风险控制见本文件,深入实现细节时打开 references(reference.md)。官方文本暂未提供。