C# 工厂模式一般用于哪些方面?

yushen945 2012-04-27 03:49:15
C# 工厂模式一般应用在在哪些方面?
...全文
239 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyena2009 2014-06-11
  • 打赏
  • 举报
回复
引用 7 楼 yuwenge 的回复:
比如说你的程序要访问数据库,但是你不知道要访问那种,或者支持多种,就可以把访问的具体方法都定义为接口,实例化的时候,根据不同的参数,通过工厂模式,实例化不同类型的数据访问类。
这个应用很广
yushen945 2012-04-27
  • 打赏
  • 举报
回复
谢谢各位了~!~!
卧_槽 2012-04-27
  • 打赏
  • 举报
回复
比如说你的程序要访问数据库,但是你不知道要访问那种,或者支持多种,就可以把访问的具体方法都定义为接口,实例化的时候,根据不同的参数,通过工厂模式,实例化不同类型的数据访问类。
TaiJi1985 2012-04-27
  • 打赏
  • 举报
回复
及时不准备支持插件机制,这也是一种低耦合的优良架构。
TaiJi1985 2012-04-27
  • 打赏
  • 举报
回复
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,就可以无缝的添加新的功能。

这个多用于插件机制,各种容器(就是个工厂)之中。
anzhiqiang_touzi 2012-04-27
  • 打赏
  • 举报
回复
使用针对接口编程和依赖倒置原则的地方,如果用了这些技术,你的程序调用的都是接口和抽象类的方法,但接口和抽象类是无法用new实例化的,所以只好用工厂来创建实例,

其他地方,如果代码调用的都是具体类的方法,就无需使用工厂类,直接new就行,
yushen945 2012-04-27
  • 打赏
  • 举报
回复
能具体下不,偶是新手,求指导下哈~!~!
bdmh 2012-04-27
  • 打赏
  • 举报
回复
这和语言无关,你看看编程模式中都有对某种模式适用范围的说明,但不要局限于此
stonespace 2012-04-27
  • 打赏
  • 举报
回复
使用针对接口编程和依赖倒置原则的地方,如果用了这些技术,你的程序调用的都是接口和抽象类的方法,但接口和抽象类是无法用new实例化的,所以只好用工厂来创建实例,

其他地方,如果代码调用的都是具体类的方法,就无需使用工厂类,直接new就行,

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧