简单工厂模式
又称静态工厂方法模式,它属于类创建型模式.在简单工厂模式中,可以根据参数的不同返回不同类的实例.简单工厂模式专门定义一个类来负责创建其他类的实例,被创建实例通常都有共同的父类
简单工厂模式中的角色
- 抽象产品类:可以理解为产品的模板,也就是产品所继承的抽象父类,各产品所属的同一大类
- 产品子类 :所需要创建的具体产品类
- 工厂类: 传入参数到工厂类获取产品,根据参数类的不同返回不同类的实例
下面举个例子
//工厂类
class simpleFacytory{
public static void main(String[] args) {
Product product = simpleFacytory.getProduct("A");
product.create();
}
public static Product getProduct(String type){
//根据参数获取不同类的实例
if(type.equals("A"))
return new ProductA();
else
return new ProductB();
}
}
//抽象产品类
abstract class Product{
abstract public void create();
}
//产品子类A
class ProductA extends Product{
@Override
public void create() {
System.out.println("创建了产品A");
}
}
//产品子类B
class ProductB extends Product{
@Override
public void create() {
System.out.println("创建了产品B");
}
}
优点:
对象的创建和使用实现分离,各司其职
缺点:
简单工厂模式不够灵活,新增一个产品就要增加产品类,修改判断逻辑等