工厂模式是设计模式中非常容易理解的模式之一。简单来说,工厂模式就是替代new操作的一种方式,比如我们去饭店要茶水,工厂就像是服务员,只要告诉服务员我要茶水,服务员就会把茶壶拿来,而不需要我们自己去拿茶水(好比于在main方法中直接new Tea();)
接下来贴上例子,为了方便,把所有的代码都写在了一个文件中。
//首先创建一个接口
interface Animal {
public void print();
}
//创建一个Cat的类实现Animal接口
class Cat implements Animal {
public void print() {
System.out.println("猫");
}
}
//创建一个Dog的类实现Animal接口
class Dog implements Animal {
public void print() {
System.out.println("狗");
}
}
//创建一个Rabbit的类实现Animal接口
class Rabbit implements Animal {
public void print() {
System.out.println("兔子");
}
}
创建完成相应的类后,就开始写工厂类了,工厂的作用就是通过获取到的信息,返回相应的对象
//创建一个工厂类,根据给定的信息生成具体的类的对象
class AnimalFactory {
public Animal getAnimal (String animalType) {
if ("cat".equals(animalType)) {
return new Cat();
} else if ("dog".equals(animalType)) {
return new Dog();
} else if ("rabbit".equals(animalType)) {
return new Rabbit();
} else {
return null;
}
}
}
下面开始写主方法
//通过传递不同的信息(参数)给工厂来获取不同的对象
public class FactoryDemo {
public static void main(String[] args) {
AnimalFactory factory = new AnimalFactory();
Animal cat = factory.getAnimal("cat");
cat.print();
Animal dog = factory.getAnimal("dog");
dog.print();
Animal rabbit = factory.getAnimal("rabbit");
rabbit.print();
}
}