当前位置:编程学习 > asp >>

设计模式读书笔记啊-工场方法模式

工厂方法
工厂方法使用继承;把对象的创建委托给子类,由子类决定实例化哪一个.
 就是将相同的方法放到一起。
Abstract Product factoryMethod(String type)
工厂方法 是抽象的;
必须返回一个产品对象;
必须传入一个类型,决定创建哪个对象;
 该方法是继承该类后,要实现的。
用工场方法模式修改工厂方法的例子:
把createPizza放回PizzaStore里,不过声明为抽象方法,由具体继承的类实现。
修改后的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;
    }
}
继承PizzaStore的类,实现createPizza类,返回具体Pizza。
public class ChicagoPizzaStore extends PizzaStore {
 
    Pizza createPizza(String item) {
           if (item.equals("cheese")) {
                  return new ChicagoStyleCheesePizza();
           } else if (item.equals("veggie")) {
                  return new ChicagoStyleVeggiePizza();
           } else if (item.equals("clam")) {
                  return new ChicagoStyleClamPizza();
           } else if (item.equals("pepperoni")) {
                  return new ChicagoStylePepperoniPizza();
           } else return null;
    }
}
工厂方法就是将类的创建交由子类完成,在产品和产品创建者间构建了一个平台。
和简单工厂的区别;简单工厂就是封装创建类的方法。不能更改正在创建的产品,而工厂方法提供了一格框架,可以动态的由子类决定如何创建产品。
工厂方法更适用于由更多的产品类别,每个类别又有不同的类型。需要实例化的产品具备不同的特性。

补充:Web开发 , ASP.Net ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,