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