工厂模式

工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。

创建接口类

public interface Animal {
    void sounds();
}

实体类实现接口

public class Dog implements Animal {

    @Override
    public void sounds() {
        System.out.println("狗叫汪汪");
    }
}


public class Cat implements Animal {
    @Override
    public void sounds() {
        System.out.println("猫叫喵喵");
    }
}

创建一个工厂类,根据传入的参数生成对应的对象

public class AnimalFactory {
    public Animal getAnimal(String animal) {
        if ("cat".equals(animal)) {
            return new Cat();
        }
        if ("dog".equals(animal)) {
            return new Dog();
        }
        return null;
    }
}

测试类检验成果

public class FactoryPatternDemo {
    public static void main(String[] args) {
        AnimalFactory animalFactory = new AnimalFactory();

        Animal animal = animalFactory.getAnimal("cat");
        animal.sounds();

        Animal animal2 = animalFactory.getAnimal("dog");
        animal2.sounds();

    }
}

输出结果

猫叫喵喵
狗叫汪汪