我已经学习了工厂方法设计模式,同时,我已经遇到了Activator对象以及如何使用它,从阅读教程(我在intellisense中遇到了很多这个对象)。 / p>
Activator允许后期绑定,这可能非常有用。但这是因为我们不知道我们想要实例化哪个类。同样,工厂方法在软件工程中处理同样的问题。
在一个简单的层面上,一堆ifs或case语句然后根据if条件实例化一个对象是工厂方法的一个实现,对吗?
关于相关主题,我已经读过多态可以通过消除case语句来减少对象之间的耦合。有这样的例子吗?
由于
答案 0 :(得分:9)
如果您在编译时知道要实例化的所有潜在类,请使用Factory模式,它会更快并让编译器检查您的类型安全性。
另一方面,如果您不知道可能需要实例化的所有类(例如,如果您尝试提供插件体系结构),则唯一的选择是使用Activator
这里简单的经验法则是:只要场景允许,就选择使用Activator
(或任何其他类型的运行时绑定)的工厂。