1、简单工厂模式
/* 产品的抽象接口 */
public interface Animal {
void call();
}
public class Cat implements Animal{
@Override
public void call() {
System.out.println("我们一起学猫叫");
}
}
public class Dog implements Animal{
@Override
public void call() {
System.out.println("我们一起学狗叫");
}
}
工厂类:
public class AnimalFactory {
public static Animal createAnimal(Class clazz){
Animal animal =null ;
try {
animal = (Animal) clazz.forName(clazz.getName()).newInstance();
}catch (InstantiationException e) {
e.printStackTrace();
}catch (IllegalAccessException e) {
e.printStackTrace();
}catch (ClassNotFoundException e) {
e.printStackTrace();
}
return animal;
}
public static Animal createAnimal(String type){
if(type.equals("Dog")){
Animal dog =new Dog();
return dog;
}else if(type.equals("Cat")){
Animal cat =new Cat();
return cat;
}else{
System.out.println("生产不出来");
return null;
}
}
}
2、工厂方法模式
它是将AnimalFactory类拆分了,变为接口FactoryAnimal、类DogFactory、类CatFactory。
public interface FactoryAnimal {
Animal createAnimal();
}
public class DogFactory implements FactoryAnimal {
@Override
public Animal createAnimal() {
return new Dog();
}
}
public class CatFactory implements FactoryAnimal {
@Override
public Animal createAnimal() {
return new Cat();
}
}
3、抽象工厂模式
抽象工厂模式:
1) 用来生产不同产品族的全部产品。(对于增加新的产品,无能为力;支持增加产品族)。
2) 抽象工厂模式是工厂方法模式的升级版本,在有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。
抽象工厂模式 这个总结的很详细,方便以后查看。
网友评论