定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类,在简单工厂模式中我们不需要自己来创建对象,只需要知道对象的名字就可以通过工厂对其实例化。
比如你想要一个宠物,你没办法获取,只能到宠物店去卖,你只需要告诉宠物店你想要的是什么宠物就可以获取。
实现
动物的接口
public interface Animal {
void buy();
}
狗类
public class Dog implements Animal{
public Dog(){
this.buy();
}
public void buy() {
System.out.println("您买了一只狗");
}
}
猫类
public class Cat implements Animal {
public Cat(){
this.buy();
}
public void buy() {
System.out.println("您买了一只猫");
}
}
宠物店
public class AnimalFactory {
//宠物店
public Animal makeAnimal(String animalType){
if(animalType.equals("dog")){
return new Dog();
}
else if(animalType.equals("cat")){
return new Cat();
}
return null;
}
}
测试
public class Text {
public static void main(String[] args) {
AnimalFactory animalfactory =new AnimalFactory();
animalfactory.makeAnimal("dog");//输入“dog”购买狗
animalfactory.makeAnimal("cat");//输入“cat”购买猫
}
}
只需要输入"dog"就可以创建狗的对象,输入“cat”获得猫的对象。