C# 何时使用活化剂,何时使用工厂方法?

C# 何时使用活化剂,何时使用工厂方法?,c#,C#,我已经学习了factory method设计模式,同时,通过阅读教程,我遇到了Activator对象以及如何使用它(我在intellisense中遇到了很多这样的对象) Activator允许后期绑定,这非常有用。但这是因为我们不知道要实例化什么类。同样,工厂方法处理软件工程中的相同问题 在一个简单的层次上,一组ifs或case语句,然后根据if条件实例化一个对象,这是工厂方法的实现,对吗 在一个相关的主题上,我读到多态性可以通过消除case语句来减少对象之间的耦合。有这样的例子吗 谢谢如果您在

我已经学习了factory method设计模式,同时,通过阅读教程,我遇到了Activator对象以及如何使用它(我在intellisense中遇到了很多这样的对象)

Activator允许后期绑定,这非常有用。但这是因为我们不知道要实例化什么类。同样,工厂方法处理软件工程中的相同问题

在一个简单的层次上,一组ifs或case语句,然后根据if条件实例化一个对象,这是工厂方法的实现,对吗

在一个相关的主题上,我读到多态性可以通过消除case语句来减少对象之间的耦合。有这样的例子吗


谢谢

如果您在编译时知道要实例化的所有潜在类,请使用工厂模式,这样会更快,并让编译器检查您的类型安全性

另一方面,如果您不知道可能需要实例化的所有类(例如,如果您试图提供插件体系结构),那么您唯一的选择就是使用
Activator

这里简单的经验法则是:选择工厂而不是使用
Activator
(或任何其他类型的运行时绑定),只要场景允许