实现效果
出海捕鱼~~~烤 25 分钟切成6片装箱[芝士披萨]制作完成准备食材烤 25 分钟切片,铺上芝士装箱[芝士披萨]制作完成不会做的披萨,改为普通披萨准备食材烤 25 分钟切成6片装箱[普通披萨]制作完成
讲解
其实就是一种编程思想,模块化编程事项,没什么好说的。
完整代码
package factoryMode;class Pizza{ String name; public Pizza() { name = "普通披萨"; } Pizza OrderPizza(String pizzaType) { Pizza pizza; SimplePizzaFactory simplePizzaFactory = new SimplePizzaFactory();//生成pizza pizza = simplePizzaFactory.CreatePizza(pizzaType); pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza; } void prepare() { System.out.println("准备食材"); } void bake() { System.out.println("烤 25 分钟"); } void cut() { System.out.println("切成6片"); } void box() { System.out.println("装箱"); System.out.println("[" + name + "]" +"制作完成"); }}// 将用来区分不同类型,单独生成一个类class SimplePizzaFactory{ public Pizza CreatePizza(String pizzaType) { Pizza pizza = null; if(pizzaType.equals("海鲜披萨")) { pizza = new SeafoodPizza(); }else if (pizzaType.equals("芝士披萨")) { pizza = new CheesePizza(); }else { pizza = new Pizza(); System.out.println("不会做的披萨,改为普通披萨"); } return pizza; }}class SeafoodPizza extends Pizza{ public SeafoodPizza() { name = "芝士披萨"; } void prepare() { System.out.println("出海捕鱼~~~"); }}class CheesePizza extends Pizza{ public CheesePizza() { name = "芝士披萨"; } void cut() { System.out.println("切片,铺上芝士"); }}public class main { static public void main(String[] args) { Pizza pizza = new Pizza(); pizza.OrderPizza("海鲜披萨"); pizza.OrderPizza("芝士披萨"); pizza.OrderPizza("火箭披萨"); }}