01 简介
简单工厂模式,就是我们把需要new出来的对象放到工厂方法中进行创建。
我们有一个抽象类叫Animal
,每个动物都需要吃东西才能活着,所以我们在Animal
类中定义一个抽象方法叫eat()
。
现在,我们有三种动物,分别是dog
、cat
和rabbit
,然后我们都去继承Animal
类,并实现eat()
这个方法。
最后,我们有一个工厂类,有一个静态方法get(String name)
,通过这个方法我们就能通过name
获取到具体需要什么动物。我们在需要使用某个具体的动物时,就不用再关心怎么去创建一个实例了,而是交给工厂类去创建。
02 UML图
03 代码实现
Animal类:
public abstract class Animal {
abstract void eat();
}
Animal的子类:
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("猫咪吃鱼");
}
}
public class Dog extends Animal {
@Override
public void eat() {
System.out.println("狗狗啃骨头");
}
}
public class Rabbit extends Animal {
@Override
public void eat() {
System.out.println("兔子吃草");
}
}
工厂类:
public class AnimalFactory {
public static Animal get(String name) {
Animal animal = null;
switch (name) {
case "dog":
animal = new Dog();
break;
case "cat":
animal = new Cat();
break;
case "rabbit":
animal = new Rabbit();
break;
default:
}
return animal;
}
}
测试类:
public class MainTest {
public static void main(String[] args) {
Animal cat = AnimalFactory.get("cat");
cat.eat();
Animal rabbit = AnimalFactory.get("rabbit");
rabbit.eat();
Animal dog = AnimalFactory.get("dog");
dog.eat();
}
}
运行结果: