http://www.cnblogs.com/nniixl/articles/1316769.html
http://www.cnblogs.com/cwj-0122/archive/2008/08/14/1267954.html

解决方案 »

  1.   

    下了几本书,怕以后分数不够,所以进来自曝一下我的认识如下抽象工厂:客户程序需要使用到一系列产品对象,但是客户程序不希望局限于使用仅仅这一组产品对象。这样一来我们不能够在客户程序中直接创建一组产品对象。我们可以借助抽象工厂模式提供的解决方案原型,创建一个抽象工厂类,这个类什么都不干仅仅是用来创建对象,也就是返回一组实例化的具体产品对象,但是这个实例化由派生类完成,而客户程序仅仅包含抽象工厂对象这个抽象的引用不关心具体的派生类是谁,这样一来,耦合没了,吃什么都香了。
    工厂方法:同样是一个目的为初衷,这一次解决问题的方法从has a变成了is a,也就是不用委托改用继承了,抽象工厂中是有抽象类(接口)的一个方法返回一个具体的对象,而工厂方法顾名思义就是一个派生的方法来做一样的事情,由派生类的方法来返回一个具体对象,派生类是无穷尽的,那么扩展也就是无穷的了。
    个人观点:理论不用都是狗屁,看看参考书,写几个程序才能成为自己的东东。参见以下链接看UML图,清晰明了。抽象方法:http://www.dofactory.com/Patterns/PatternAbstract.aspx
    工厂方法:http://www.dofactory.com/Patterns/PatternFactory.aspx关于三层中的应用:楼主希望能够看到一个三层架构使用该设计模式的例子,如1楼同志所说,工厂模式在微软petshop中不难发现,一看便知。最近听说一个忒漂亮的名词叫依赖注入,其实和工厂方法一个思路,并且在petshop里面也有,petshop用反射和xml的配置来做到不同数据库访问层的切换。顺便说一句怎么拿分啊 ~<-
      

  2.   

    petshop最经典,你可以仔细看一下。