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

昨天晚上和同学聊到工厂模式,感觉一下子没有什么整体思路,正好今天不怎么忙,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框架使用工厂模式比较多有兴趣的可以研究下。

猜你喜欢

转载自1sun1.iteye.com/blog/651027