定义工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
从类设计来看,工厂方法分为创建者类(Creator)和产品类(Product) 两个平行的类层级。
也就是说讲具体产品的创建从创建者中解耦出来
设计原则:Dependency Inversion Principle依赖倒置原则
要依赖抽象,不要以来具体类。
几个指导方针:
1.变量不可持有具体类的引用。
2.不要让类派生自具体类。
3.不要覆盖基类中已实现的方法。
1 package Factory; 2 3 public class PizzaTestDrive { 4 5 public static void main(String[] args) { 6 PizzaStore nyStore = new NYPizzaStore(); 7 PizzaStore chicagoStore = new ChicagoPizzaStore(); 8 9 Pizza pizza = nyStore.orderPizza("cheese"); 10 System.out.println("Ethan orderd a " + pizza.getName() + '\n'); 11 12 pizza = chicagoStore.orderPizza("cheese"); 13 System.out.println("Joel orderd a " + pizza.getName() + '\n'); 14 } 15 16 }
包含的类: