日期:2014-05-18  浏览次数:20481 次

小白请教:抽象工厂模式理解
今天学习工厂模式。
简单工厂模式看懂了,但是抽象工厂模式不明白。
请问高手,能不能用易于接受的形式讲一下抽象工厂模式。
越直白越好。
(回答者可以到这里接分哦!)

------解决方案--------------------
正好前两天有位老兄在群里拿激将法激我,我就跑他博客就这个问题踩了两脚,你倒是可以去看看
http://blog.csdn.net/lanwilliam/archive/2008/10/21/3119131.aspx

实际上,抛开所有的细枝末节的话。你直接从他们的调用方式上,用黑盒法就可以倒推出内部实现

 a a1=factory.getA("B");
 a a2=factory.getB(new B());

如果我让你去写一个factory,同时在这个对象里去实现这个getA,getB两个方法,你认为你会如何写。
我想答案会很简单,只要是对A a1=new B()这个东西有概念滴人,会在两分钟以内完成


看《设计模式》最重要的就是看他的核心和他要解决的问题本身,而不要看他们给的代码,他们的代码有太多细枝末节的东西。往往把人绕到无关紧要的东西去了
------解决方案--------------------
如果让你自己从书架上拿一本书,你会;而如果让你告诉别人你帮你需要拿一本书,你不会了,为什么变得这么傻?因为你想得太多了。而如果你知道跟一个人说拿书你会,但是让你再跟这个人说请他同时拿一个计算器或者一杯咖啡,你又含糊了,为什么又变傻了?因为你又想太多了。为什么一个人学了设计模式反而大脑残废了?因为人家本来只是将生活中的东西包装成不容易看懂的语言的形式,而已总是以为人家在谈论你生活中没有经历过的新鲜事。

设计模式基本上都是写给纯粹结构化编程者的人的,因为掺杂了一些面向对象原理,所以特别晦涩难懂。设计模式使用的不是面向对象设计的精简直观的语言。设计模式谈论的是一些简单的多种组件协同运作时的控制方法,这是普通的结构化设计问题,只是用了OOPL语言来实现,而不是谈论面向对象分析和设计(OOAD)。