论坛首页 综合技术论坛

单工厂模式,工厂模式和抽象工厂模式超级简单介绍

浏览 11710 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (7)
作者 正文
   发表时间:2010-04-23   最后修改:2010-04-23

昨天晚上和同学聊到工厂模式,感觉一下子没有什么整体思路,正好今天不怎么忙,gooogle下,给自己做个小总结。
首先我看了一些别人写的关于工厂模式的介绍,普遍都比较长,对于没耐心的人可能就比较头疼了。好吧,我就站在巨人的肩上在重新整理下好了。
这里主要通过比较简单工厂模式,工厂模式和抽象工厂模式的思路来介绍。
先来看三张图吧(不是自己画的请愿作者原谅,流传太久不知出处- -!),
第一张:

这个就是传说中的简单工厂模式,很简单,原来的需求是只有Creator和Product,每次Creator需要Product的时候都要自己new一个Product。使用简单工厂模式的结果就是增加了ConcreteProduct这个工厂类,好处是Creator不用自己来new Product,需要Product的时候直接问ConcreteProduct拿就是,反过来说就是ConcreteProduct管理了对Product的实例化。
简单吧,如果没看懂,自己Google下简单工厂模式的代码,帮助理解下,如果还看不懂,请您先不要看,先做项目去,到火候的时候自然而然就会了。
第二张:

理解了简单工厂模式之后,再看第二张图就相对简单多了,对比1,2图多的是Product有了父类(接口)子类之分,Factory有了父类(接口)子类之分,至于为什么要多,一个项目中的东西多了之后,自然而然就会让你有这样的想法这样封装,不过看不懂的话,还是那句话,多做做项目(其实我也没做过几个项目,多的是思考而已)。
第三张:

不要埋怨我介绍的太简单,因为它本来就不复杂,看一眼,就是多了一个Product的接口,然后Factory多了对这个多的部分的处理,至于为什么要做,个人觉得是Product多了一个接口不够用了,就出来这个个东西。
不同大小的系统应该使用相应的工厂模式,或是考虑是否使用工厂模式(个人觉得工厂模式还是比较好的)
这个没有贴相关的代码,如果想看工厂模式相关的对于JAVA的实现,个人建议看下这个
http://www.jdon.com/designpatterns/designpattern_factory.htm
不过他没有将简单工厂模式
Sping框架使用工厂模式比较多有兴趣的可以研究下。

 

   发表时间:2010-04-23   最后修改:2010-04-23
少一个r

Sping框架 spring
0 请登录后投票
   发表时间:2010-04-23  
congdepeng 写道
少一个r

Sping框架 spring

- -!,谢谢
0 请登录后投票
   发表时间:2010-04-24  
factory 模式的重要性并不在于用一个对象去创建另外一个对象。这简单看上去是多此一举。其精髓在于免除了客户对于一个实现的依赖。随着IOC的流行,简单的factory模式逐渐用到的越来越少了(在一些framework中还可见到,但是在一般的客户代码中应该用依赖注入替换)。
0 请登录后投票
   发表时间:2010-04-30  
只要你用了mvc,就一定用了工厂模式
0 请登录后投票
   发表时间:2010-05-01  
昨天晚上和同学聊到工厂模式,感觉一下子没有什么整体思路,正好今天不怎么忙,gooogle下,给自己做个小总结。
首先我看了一些别人写的关于工厂模式的介绍,普遍都比较长,对于没耐心的人可能就比较头疼了。好吧,我就站在巨人的肩上在重新整理下好了。
这里主要通过比较简单工厂模式,工厂模式和抽象工厂模式的思路来介绍。
先来看三张图吧(不是自己画的请愿作者原谅,流传太久不知出处- -!)

gooogleLZ故意写错的!
0 请登录后投票
   发表时间:2010-05-05  
思路非常不清楚,而且理解也有很大偏差。
0 请登录后投票
   发表时间:2010-05-06  

看看这里吧

http://www.jdon.com/jivejdon/thread/11177
0 请登录后投票
   发表时间:2010-05-06  
palmer 写道

看看这里吧

http://www.jdon.com/jivejdon/thread/11177

著名的娘帖
0 请登录后投票
   发表时间:2010-05-12  
个人认为纯属鸡肋,

明白的不用看,

不明白的看了也没用。呵呵

以上纯属个人观点,不包含人身攻击:)
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics