------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
应用场景:对于调用者清楚知道应该用哪个工厂
创建步骤
1.创建抽象产品角色(抽象类或接口,所有产品公有的部分)
2.创建具体产品角色(抽象类的实现类或接口的实现方式,实现具体方法)
3.创建抽象工厂角色(接口,与程序无关,所有具体工厂必须实现该接口)
4.创建具体工厂角色(实现接口,返回具体的产品对象)
1.创建抽象产品
//抽象产品角色 //所有具体产品的父类定义的产品的公有方法 abstract class Animal{ abstract void eat(); }
2.创建具体产品
//具体产品角色 //产品的具体实现 class Dog extends Animal{ void eat() { System.out.println("狗吃骨头"); } } //具体产品角色 //产品的具体实现 class Cat extends Animal{ void eat() { System.out.println("猫吃鱼"); } }
3.创建抽象工厂
//抽象工厂类 //工厂类的核心,与应用程序无关必须实现该接口 interface FactoryMethod{ public abstract Animal createAnimal(); }
4.创建具体工厂
//具体工厂类 //实现抽象工厂类,专门创建具体对象 class DogFactory implements FactoryMethod{ public Animal createAnimal() { return new Dog(); } } class CatFactory implements FactoryMethod{ public Animal createAnimal() { return new Cat(); } }
public class Main { public static void main(String[] args) { FactoryMethod fac = new DogFactory(); Animal a = fac.createAnimal();//直接Dog d = fac.createAnimal()也可以 a.eat(); fac = new CatFactory(); a = fac.createAnimal(); a.eat(); } }
狗吃骨头
猫吃鱼