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);
}
}