顾名思义,简单工厂模式是最简单的一种工厂模式,它定义了一个负责生产对象的工厂类,使用者可以根据不同参数来创建并返回不同子类,这些子类都共用一个接口(即父类)。

简单工厂模式的基本要求:

  • 定义一个 static 方法,通过类名直接调用(不用创建对象)
  • 返回值类型是父类类型,返回的可以是其任意子类类型
  • 传入一个字符串类型的参数,工厂根据参数创建对应的子类产品

例如:

public class PetStore {
    public static Animal getAnimal(String petName){
        Animal an = null;
        if("猫".equals(petName)){ //写成petName.equals("猫")容易发生空指针异常
            an = new Cat();
        }
        if("狗".equals(petName)){
            an = new Dog();
        }
        if("猪".equals(petName)){
            an = new Pig();
        }
        return an;
    }
}
public class Test {
    public static void main(String[] args) {
        Animal an = PetStore.getAnimal("狗");
    }
}