策略模式替换if / else或case语句

时间:2010-09-22 18:35:06

标签: strategy-pattern

为什么我觉得使用策略只是将if / else推迟到工厂? 使用策略,工厂不需要确定实例化哪个具体类,而不是if / else吗?

另一种选择是以某种方式使用Map / List,并且键是要实例化的类的名称,并且可能使用名称中的Factory传递类?

1 个答案:

答案 0 :(得分:1)

Map \ List是Factory模式的实现。

使用策略模式比if \ else更好,因为它创建了耦合代码。 使用Factory + Startegy,您可以在不触及客户端代码的情况下扩展处理算法,并有更多方法动态配置代码(重新编译)。