简介:又叫做静态工厂方法(StaticFactory Method) 模式, 但不属于 23 种设计模式之一。列在此处仅作对比用。
缺点:不符合开闭原则,如果你要加一个产品类C,你就要修改工厂类里面的生成产品的代码
代码示例
public interface Product {
//声明类所需继承的共同接口,也可以是抽象类
}
public class ProductA implements Product {
public ProductA() {
System.out.println("ProductA");
}
}
public class ProductB implements Product {
public ProductB() {
System.out.println("ProductB");
}
}
public class Factory {
//可以在工厂类中添加任何你所需要的逻辑
public static Product create(String str){
if(str.equalsIgnoreCase("ProductA")){//生成ProductA 硬编码
return new ProductA();
}else if(str.equalsIgnoreCase("ProductB")){ //生成ProductB
return new ProductB();
}
return null;
}
}
public class Client {
public static void main(String[] args) {
//调用Factory的静态方法生成所要的类
Factory.create("productA"); //硬编码
Factory.create("ProductB");
}
}