C# 工厂模式一般用于哪些方面?
C# 工厂模式一般应用在在哪些方面?
------解决方案--------------------使用针对接口编程和依赖倒置原则的地方,如果用了这些技术,你的程序调用的都是接口和抽象类的方法,但接口和抽象类是无法用new实例化的,所以只好用工厂来创建实例,
其他地方,如果代码调用的都是具体类的方法,就无需使用工厂类,直接new就行,
------解决方案--------------------d
主要用于对扩展性有要求的功能。 以简单工厂为例:
接口Fun有三个实现 class FunA FunB FunC
工厂 class Fac {
public static Fun getFun(string name){
if(name == "A") {return new FunA();}
else if (name == "B"){return new FunB();}
else if (name == "C"){return new FunC();}
}
其他部分调用 Fun f = Fac.getFun(Configure.GetFunName()); 就可以用这样调用他。
Configure.GetFunName()这个可以从配置中获取类名。
而Fun的实现,则可以分装到dll中。 也就是说,在不改动原有工程的前提下,修改配置和添加dll,就可以无缝的添加新的功能。
这个多用于插件机制,各种容器(就是个工厂)之中。
------解决方案--------------------比如说你的程序要访问数据库,但是你不知道要访问那种,或者支持多种,就可以把访问的具体方法都定义为接口,实例化的时候,根据不同的参数,通过工厂模式,实例化不同类型的数据访问类。