工厂方法模式 The Factory Method Pattern

工厂方法模式
     定义了一个创建对象的接口,但是由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
  • 使用new时,是针对实现编程,依赖具体类
  • 工厂方法模式将产品的“实现”从“使用”中解耦
  • “工厂”封装实例化的行为
 
设计原则
6、要依赖抽象,不要依赖具体类
 
工厂方法类图:
1、PizzaStore类实现操纵产品的方法,但不实现工厂方法,由子类实现。
public abstract class PizzaStore {
     abstract Pizza createPizza(String item);//工厂方法为抽象方法

     public Pizza orderPizza(String type) {
          Pizza pizza = createPizza(type);
          System.out.println("--- Making a " + pizza.getName() + " ---");
          pizza.prepare();
          pizza.bake();
          pizza.cut();
          pizza.box();
          return pizza;
     }
}
2、把对象的创建委托给子类,子类实现抽象的工厂方法来创建具体产品。(使用继承)
     NYPizzaStore所封装的知识是关于如何制作纽约风味的匹萨
     ChicagoPizzaStore所封装的知识是关于如何制作芝加哥风味的匹萨
 
 
(转载请注明出处 ^.^)
posted @ 2013-03-29 16:50  windlaughing  阅读(362)  评论(0编辑  收藏  举报