1

为什么在我看来,使用策略只是将 if/else 推迟到工厂?使用策略,工厂不需要弄清楚要实例化哪个具体类,它不是通过 if/else 来实现的吗?

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

4

1 回答 1

1

Map\List 是工厂模式的实现。

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

于 2010-09-22T18:43:12.023 回答