工厂模式的优点在哪里?

ccp5780199 2007-07-20 10:21:40
今天研究PetShop4.0时候,上网查发现他使用的是工场模式
我想请问下
比起传统的
表现层调用业务层和数据逻辑层
工厂模式的优点在哪?
能用案例吗?
...全文
4056 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
kruskaluu 2010-08-16
  • 打赏
  • 举报
回复
个人认为:
方便管理对象,对象之间一般都有相同的方法名称,只是不同的方法实现。
如果需要某个对象,则直接
ObjectInterface o = ObjectFactory.getObjectFactory.getObjectInterfaceImpl();

不用直接new一个对象ObjectInterface o = new ObjectInterfaceImpl();
nojupig 2010-07-16
  • 打赏
  • 举报
回复
一群俗人,就不能好好的形象点的回答问题,国人就喜欢把简单的问题说的很晦涩,窃不知真正的深奥便是最精简。
我是新手,我觉得:

工程模式:
1.提供对象,并且能够持有该对象,获得对象集中管理;
2。如果请求对象的人需要的是动物,那么工厂模式就可以强制的决定我给你供应猫,还是供应一条狗。请求者作为一个购买动物的顾客,太轻松改了,他只要getAnimal()就行,因为他的需求我们晓得,哈哈哈哈,,,
cfcan 2010-01-06
  • 打赏
  • 举报
回复
wishwish996 2009-09-24
  • 打赏
  • 举报
回复
工厂模式的作用是利于维护,扩散功能。工作量多少要看设计情况而定,这不是三言两语能说的清楚。
wishwish996 2009-09-24
  • 打赏
  • 举报
回复
工厂模式的作用是利于维护,扩散功能。工作量多少要看设计情况而定,这不是三言两语能说的清楚。
bsjialong 2009-02-03
  • 打赏
  • 举报
回复
michael556cdj 的一句话可讲到为了哦
我是新人,但是却能够理解,michael556cdj 说的很真实
至于楼上有人说mvc的分层应用也是有点道理的,不过不是回答这个问题的核心
michael556cdj 2007-08-11
  • 打赏
  • 举报
回复
工厂模式就是在声明的时候不知道到要什么对象
在使用的时候再实例化!采用接口或者基类调用!
dongwei2345 2007-08-11
  • 打赏
  • 举报
回复
你要确定一点
工厂模式针对的是多态
也就是说,你的类型如果可能有很多派生,使用工厂模式比较方便
如果你的需求是经常会添加的
比如会添加某个方法,那么使用工厂模式反而很麻烦
因为你要修改一连串的项目文件
sunzhong2003 2007-07-21
  • 打赏
  • 举报
回复
工产模式主要为了根据配置快速地切换数据库
  • 打赏
  • 举报
回复
建议看看设计模式之工产模式..
xuan.ye 2007-07-21
  • 打赏
  • 举报
回复
petshop是入门的没什么太大作用,只作为你了解ms的一个窗口,了解什么是数据集-模块-类型
建议看看范型工厂+缓存+分页存储过程
如果是一个程序员觉得petshop太优化了,太强大了,那说明问题很严重了
JustLovePro 2007-07-21
  • 打赏
  • 举报
回复
看你們吵的這么熱鬧,設計模式還真得好好看看了!

只是覺得自己功力不足,怕拿不下來!!!

樓上几位高手給個建議????
sunzhong2003 2007-07-21
  • 打赏
  • 举报
回复
vrhero,我晕了,如果抛开PETSHOP谈工厂模式,可以和你谈几天几夜估计都谈不完

什么叫本末倒置,具体问题具体分析嘛

vrhero 2007-07-21
  • 打赏
  • 举报
回复
一个模式的存在只是因为现实世界有这样的需求存在
-----------------
说的好...就是这个目的...


如果PETSHOP不为了跨数据库方便,那工厂在这里简直就是个累赘,工作量增加,性能下降
-----------------
首先PetShop是个Sample...Sample里面出现多么累赘的模式都是有道理的...因为它只是给人看的...其次数据库工厂只是工厂模式的一种具体应用...你本末倒置了...
sunzhong2003 2007-07-21
  • 打赏
  • 举报
回复
Jinglecat(晓风残月 >> 问题需简洁,错误要详细) 分析的不错
sunzhong2003 2007-07-21
  • 打赏
  • 举报
回复
项目不够大?
方便的使用接口,我不管它,接口里面的具体实现.
如果PETSHOP不为了跨数据库方便,那工厂在这里简直就是个累赘,工作量增加,性能下降
Jinglecat 2007-07-21
  • 打赏
  • 举报
回复
实际上,我没有发现 抽象工厂模式 的优点在哪里,一个模式的存在只是因为现实世界有这样的需求存在,而用抽象工厂模式刚好可以很好 petshop 欲支持多个数据库的问题,所以它就选择此模式了。

事实上,抽象工厂模式并没有petshop“显示”的那么简单,只是 4.0 运用了反射,减少了工厂的“量”,

模式的运用,并不会带来开发的简单性,主要是在系统的灵活性、可扩展性、可维护性,

比如,pet shop ,我现在若要换 sysbase 数据库了,只要插入一个 SysbaseDAL

这里 分层设计 与 抽象工厂模式没有直接的关系

与 MVC 模式倒是可以沾上边^_^

拙见~
vrhero 2007-07-21
  • 打赏
  • 举报
回复
使用工厂并不会让你觉得会减少工作量,方便维护估计还有点道理
------------------
你没有觉得会减少工作量是因为你的项目不够大...好像给你播种机、插秧机、联合收割机你的任务却是要种一亩三分地...你不但不会觉得工作量减少了反而无所适从...
Jinglecat 2007-07-21
  • 打赏
  • 举报
回复

先顶 vrhero(最瞧不起你们这些要代码的,一点技术含量都没有) 的分析






sunzhong2003 2007-07-21
  • 打赏
  • 举报
回复
不要随便说别人错
PETSHOP中的工厂模式就是为了扩展数据库用的
工厂模式的优点是为系统结构提供了灵活的动态扩展机制,这是它的通用优点
说简单点就是为了减少工作量方便维护,使用工厂并不会让你觉得会减少工作量,方便维护估计还有点道理
加载更多回复(4)

110,536

社区成员

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

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

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