工厂设计模式

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) 抽象工厂模式是工厂方法模式的升级版本,在有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。

抽象工厂模式 这个总结的很详细,方便以后查看。

你可能感兴趣的:(工厂设计模式)