日期:2014-05-19  浏览次数:20897 次

工厂模式的优点在哪里?
今天研究PetShop4.0时候,上网查发现他使用的是工场模式
我想请问下
比起传统的
表现层调用业务层和数据逻辑层
工厂模式的优点在哪?
能用案例吗?

------解决方案--------------------
优点在于能快速开发,1做的东西一看就能明白1那块是干什么的
------解决方案--------------------
有什么优点?等你看完设计模式就知道模式有多大的用了,还有就是你多做几个项目总结一下就知道模式多么有用了
------解决方案--------------------
比起传统的
表现层调用业务层和数据逻辑层
工厂模式的优点在哪?
------------
没有优点...因为...“表现层调用业务层和数据逻辑层”和“工厂模式”压根儿就没有什么联系...


工产模式主要为了根据配置快速地切换数据库
------------
如果是为了这个工厂模式也没有必要存在了...


工厂模式的优点是为系统结构提供了灵活的动态扩展机制...说简单点就是为了减少工作量方便维护...
------解决方案--------------------
不要随便说别人错
PETSHOP中的工厂模式就是为了扩展数据库用的
工厂模式的优点是为系统结构提供了灵活的动态扩展机制,这是它的通用优点
说简单点就是为了减少工作量方便维护,使用工厂并不会让你觉得会减少工作量,方便维护估计还有点道理
------解决方案--------------------

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



------解决方案--------------------
使用工厂并不会让你觉得会减少工作量,方便维护估计还有点道理
------------------
你没有觉得会减少工作量是因为你的项目不够大...好像给你播种机、插秧机、联合收割机你的任务却是要种一亩三分地...你不但不会觉得工作量减少了反而无所适从...
------解决方案--------------------
实际上,我没有发现 抽象工厂模式 的优点在哪里,一个模式的存在只是因为现实世界有这样的需求存在,而用抽象工厂模式刚好可以很好 petshop 欲支持多个数据库的问题,所以它就选择此模式了。

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

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

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

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

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

拙见~

------解决方案--------------------
一个模式的存在只是因为现实世界有这样的需求存在
-----------------
说的好...就是这个目的...


如果PETSHOP不为了跨数据库方便,那工厂在这里简直就是个累赘,工作量增加,性能下降
-----------------
首先PetShop是个Sample...Sample里面出现多么累赘的模式都是有道理的...因为它只是给人看的...其次数据库工厂只是工厂模式的一种具体应用...你本末倒置了...
------解决方案--------------------
petshop是入门的没什么太大作用,只作为你了解ms的一个窗口,了解什么是数据集-模块-类型
建议看看范型工厂+缓存+分页存储过程
如果是一个程序员觉得petshop太优化了,太强大了,那说明问题很严重了
------解决方案--------------------
你要确定一点
工厂模式针对的是多态
也就是说,你的类型如果可能有很多派生,使用工厂模式比较方便
如果你的需求是经常会添加的
比如会添加某个方法,那么使用工厂模式反而很麻烦
因为你要修改一连串的项目文件