介休市政府官网/怎么seo网站关键词优化
定义
工厂模式定义了一个创建对象的接口,但由子类决定要实例的类是哪一个。工厂方法把类的实例化推迟到子类。
代码
public abstract class Pizza {
String name;
}
public class BeijingStyleHotPizza extends Pizza {public BeijingStyleHotPizza() {name="BeijingStyleHotPizza";}
}
public class BeiJingstylePizza extends Pizza{public BeiJingstylePizza() {name="BeiJingstylePizza";}
}
public abstract class PizzaStore {public Pizza orderPizza(String type){Pizza pizza;pizza=crePizza(type);return pizza;}protected abstract Pizza crePizza(String type);}
public class BeijingPizzaStore extends PizzaStore{@Overrideprotected Pizza crePizza(String type) {if (type.equalsIgnoreCase("hot")) {return new BeijingStyleHotPizza();}else{return new BeiJingstylePizza();} }}
public class PizzaTest {public static void main(String[] args) {PizzaStore p1=new BeijingPizzaStore();Pizza p=p1.orderPizza("hot");System.out.println(p.name);}
}
总结
通过上面的例子我们可以看,和简单的工厂方法不同的是,简单工厂把全部的事情在一个地方都处理完了,而工厂方法确实创建了一个框架,让子类考虑如何实现。简单方法不具备工厂方法的弹性,因为简答工厂方法不能变更正在创建的产品,