简单工厂模式

Pizza.java

package com.godv.factory.simple;

public abstract class Pizza {
	private String name;
	public abstract void prepard();
	
	public void setName(String name) {
		this.name = name;
	}

	public void bake() {
		System.out.println(name + "start bake");
	}
	
	public void cut() {
		System.out.println(name + "start cut");
	}
	
	public void box() {
		System.out.println(name + "start box");
	}
}

MeiguoPizza.java    /    YingguoPizza.java    /    ZhongguoPizza.java

package com.godv.factory.simple;

public abstract class Pizza {
	private String name;
	public abstract void prepard();
	
	public void setName(String name) {
		this.name = name;
	}

	public void bake() {
		System.out.println(name + "start bake");
	}
	
	public void cut() {
		System.out.println(name + "start cut");
	}
	
	public void box() {
		System.out.println(name + "start box");
	}
}

SimpleFactory.java

package com.godv.factory.simple;

public class SimpleFactory {

	private String pizzaName;

	public SimpleFactory(String pizzaName) {
		this.pizzaName = pizzaName;
	}

	public Pizza createPizza() {
		Pizza pizza = null;
		switch (this.pizzaName) {
		case "m":
			pizza = new MeiguoPizza();
			pizza.setName("mgpz");
			break;
		case "z":
			pizza = new ZhongguoPizza();
			pizza.setName("zgpz");
			break;
		case "y":
			pizza = new YingguoPizza();
			pizza.setName("ygpz");
			break;
		default:
			break;
		}
		return pizza;
	}
}

OrderPizza.java

package com.godv.factory.simple;

public class OrderPizza {
	private SimpleFactory simpleFactory;

	public OrderPizza(SimpleFactory simpleFactory) {
		this.simpleFactory = simpleFactory;
		setFactory();
	}

	private void setFactory() {
		Pizza pizza = this.simpleFactory.createPizza();
		if (pizza != null) {
			pizza.bake();
			pizza.box();
			pizza.cut();
		}
	}
}

Client.java

package com.godv.factory.simple;

public class Client {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SimpleFactory simpleFactory = new SimpleFactory("z");
		OrderPizza orderPizza = new OrderPizza(simpleFactory);
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值