工厂方法模式
来源:互联网 发布:linux netcat rpm下载 编辑:程序博客网 时间:2024/06/06 00:59
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
举个实例:
比萨店加盟:一般披萨点餐需要经过制造,准备,打包等一系列步骤,现在有两个加盟店,工序都差不多,但是生产不同的比萨,在口味等方面有一定区别。
如何用工厂模式实现这个例子:
PizzaStore:
public abstract class PizzaStore {
public Pizza orderPizza(String type)
{
Pizza pizza;
pizza =createPizza(type);
pizza.prepare();
pizza.bake();
pizza.cut();
pizza.box();
return pizza;
}
protected abstract Pizza createPizza(String type);
}
类NYPIZZASTORE:
public class NYPizzaStore extends PizzaStore {
public Pizza createPizza(String item){
if(item.equals("cheese")){
return new NYStyleCheesePizza();
}else if(item.equals("veggie"))
{
return new NYStyleVeggizPizza();
}else{
return null;
}
}
}
类Pizza:
import java.util.ArrayList;
public abstract class Pizza {
void prepare()
{
System.out.println("Pizza is prearing");
}
void bake()
{
System.out.println("Bake for 25 mins");
}
void cut(){
System.out.println("Cutting into slices");
}
void box(){
System.out.println("Pizza in box");
}
}
类
public class NYStyleCheesePizza extends Pizza{
}
类:
public class NYStyleVeggizPizza extends Pizza {
}
public class PizzaTestDrive {
public static void main(String[] args)
{
PizzaStore nyStore = new NYPizzaStore();
Pizza pizza = nyStore.orderPizza("cheese");
}
}
- 工厂模式 -- 工厂方法
- 工厂模式-工厂方法
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式---工厂方法模式
- 【模式】工厂方法模式
- 工厂方法,抽象工厂模式
- C#工厂模式-工厂方法
- 工厂模式 和工厂方法
- 工厂模式-C-工厂方法
- 工厂模式以及工厂方法
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂方法、抽象工厂模式
- 工厂模式(简单工厂、工厂方法)
- 简单工厂|工厂方法|抽象工厂模式
- 设计模式-工厂模式(简单工厂模式+工厂方法模式)
- 游戏中的架构
- innodb引擎Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
- Gootip让Twitter成为基于地理位置的问答平台,并发布iPhone应用
- 适配器模式和外观模式
- hibernate查询(模糊查询、子查询等)
- 工厂方法模式
- URLencode AND URLdecode
- 使用OpenFlow浏览图片
- 串口 函数1
- 第一章java网络编程入门
- Linux 系统设计之 定时器
- JVM内存配置和JAVA打包
- 第二章 Scoket用法详解
- 第三章 ServerSocket用法详解(主要是线程池)