您的位置:首页 > 其它

理解工厂模式

2015-04-29 15:41 92 查看
一、简单工厂模式,因为创建对象的方法是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();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: