英文 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中就有。