码迷,mamicode.com
首页 > 其他好文 > 详细

理解工厂模式

时间:2015-04-29 16:34:34      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

一、简单工厂模式,因为创建对象的方法是static的,所以也叫静态工厂模式。

  由来:静态工厂模式是为了对产品类有统一的创建方法,而对于客户端如何创建"产品"是不需要知道也不需要管的。

  通过客户端提供的信息,new出不同的“产品”

  关键代码:

class Factory(){

  public static Farther(){

    if("sub1"){

      return new Sub1();

    }else if("sub2"){

      return new Sub2();

    }

  }

}

class Farther(){}

class Sub1 extends Farther(){}

class Sub2 extends Farther(){}

 

二、工厂模式,因为简单工厂模式不符合开闭原则,所以需要工厂模式来解决这个问题。

  关键点:需要一个工厂接口和一个产品基类,在新添加的产品的情况下新建工厂和产品即可,符合开闭原则。

   每一个产品的生产都需要一个工厂。优点是符合开闭原则(对修改关闭,对扩展开放)。缺点是造成类过多(每一个产品都需要一个产品子类和一个工厂类)

  interface Factory(){

    public Product factoryMethod();

  }

  class FactoryType1 implements Factory(){

    public Product factoryMethod(){

      return new ProductSub1();

    }

  }

class Product(){}

class ProductSub1 extends Farther(){}

 

 

三、抽象工厂模式,对产品过多的工厂模式,类的数量将极大的增加,抽象工厂模式可以将产品分族实现创建对象。

  对添加产品族是符合开闭原则的,对改变产品结构是不合符开闭原则的。

  abstract interface AbstractFactory(){ //每建一个子工厂都必须赋予这个工厂A,B两种产品的生产。每个工厂都可以有自己的实现(即不同的牌子的产品)

  public abstract productA productAFactory();

  public abstract productB productAFactory();

}

 

理解工厂模式

标签:

原文地址:http://www.cnblogs.com/yemanling/p/4465324.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!