创建——工厂方法模式

英文 factory method 工厂方法模式

工厂方法模式是封装对象实例化工程的方法,每一个类都对应一个工厂类。

如果因此觉得麻烦,可以和抽象工厂类一样,作为参数去获取。

问题也是同样,向下转化的安全问题。

如果是一个类对应一个工厂类的话,那么需要定义如下类。

首先基础接口Factory

class Factory{
  public Product CreateProduct();
}

定义工厂实现类

class Product1Factory implements Factory{
  public Product CreateProduct1(){
    Product product = new Product1();
    return product;
  }
}
class Product2Factory implements Factory{
  public Product CreateProduct2(){
    Product product = new Product2();
    return product;
  }
}

另一种实现是,不用接口,参数化配置

class Factory{
  public static int TYPE_A = 1;
  public static int TYPE_B = 2; 
  public product create(int type){
    switch(type){
      case TYPE_A:
        return new ProductA();
        break;
      case TYPE_B:
        ...
    }
  }
}

还有一种实现是每一个类都对应一个方法,代码如下

class Factory{
  public Product createProductA(){
    return new ProductA();
  }
  public Product createProductB(){
    return new ProductB();
  }
}

这种实现方式在jdk中的Executors中就有。

猜你喜欢

转载自blog.csdn.net/a397525088/article/details/82824411