简单工厂方法模式的作用或者优点
简单工厂方法模式实现了责任分离,即客户类不直接创建产品类的实例,只是作为实例的消费者,客户类委托工厂类创建产品类的实例。
UML 图
步骤
1.创建抽象产品类或者接口,定义公共的抽象方法
2.继承抽象产品类或者实现接口创建具体产品类,实现抽象方法
3.创建工厂类
4.客户类通过工厂类的静态方法,传入不同的参数,从而获得不同的具体产品实例
代码例子
1.
abstract class Product{
public abstract void getName();
}
2.
class ProductA extends Product{
@Override
public void getName() {
System.out.println("产品A");
}
}
class ProductB extends Product{
@Override
public void getName() {
System.out.println("产品B");
}
}
3.
class Factory {
public static Product getProduct(String ProductName){
switch (ProductName){
case "A":
return new ProductA();
case "B":
return new ProductB();
}
}
}
4.
public class SimpleFactoryPattern {
public static void main(String[] args){
Factory mFactory = new Factory();
mFactory.Manufacture("A").getName();
mFactory.Manufacture("B").getName();
}
}
缺点
每次增加新的产品类,都需要修改工厂类的代码
工厂类中的方法是静态的,不能被继承,所以工厂类只能是一个类,而不能形成继承结构