知识卡片
策略模式的适用场景与策略数量阈值
内容
应用[[策略模式的定义与三个角色]]的三类场景:多个类只在算法上略有不同;算法需要自由 切换;需要屏蔽算法规则细节。经验阈值:策略数量超过4个应考虑 [[策略模式很少单独使用需配合工厂方法隐藏选择逻辑]]提到的混合方案,否则类膨胀会让系统 难以维护。发散:”4个”这个具体数字是本书少数给出量化参考的地方,可作粗略预警线而非精确 边界。
参考来源
- 位置:《设计模式之禅(第2版)》第18章《策略模式》(源文件:_epub-src/text/part0082.html)
- 结论依据:原文列出三类使用场景(算法行为略有不同、算法需自由切换、需屏蔽算法规则),并给出注意事项"如果系统中的一个策略家族的具体策略数量超过4个,则需要考虑使用混合模式,解决策略类膨胀和对外暴露的问题"。
- 原始内容:多个类只有在算法或行为上稍有不同的场景……算法需要自由切换的场景……需要屏蔽算法规则的场景……如果系统中的一个策略家族的具体策略数量超过4个,则需要考虑使用混合模式。