Java 工厂模式
2018-03-14 16:14
218 查看
public class Pizza { private String name; public void ready(){}//准备 public void roast(){}//烘焙(烧烤) public void pack(){}//包装 public String getName() { return name; } public void setName(String name) { this.name = name; } }
public class Cheese extends Pizza{//奶酪 @Override public void ready() { System.out.println("奶酪披萨准备!"); } @Override public void roast() { System.out.println("奶酪披萨烧烤!"); } @Override public void pack() { System.out.println("奶酪披萨包装!"); } }
public class Bacon extends Pizza{//培根 @Override public void ready() { System.out.println("培根披萨准备!"); } @Override public void roast() { System.out.println("培根披萨烧烤!"); } @Override public void pack() { System.out.println("培根披萨包装!"); } }
public class PizzaShop {//工厂 public Pizza getPizza(String pizza){ switch (pizza) { case "奶酪": return new Cheese(); case "培根": return new Bacon(); } return null; } }
import java.util.Scanner; public class ShopTest {//测试类 public static void main(String[] args) { Scanner sc = new Scanner(System.in); PizzaShop ps = new PizzaShop(); Pizza pizza=new Pizza(); System.out.print("请输入选择的披萨种类(奶酪or培根):"); pizza.setName(sc.next()); Pizza Pizza = ps.getPizza(pizza.getName()); Pizza.ready(); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } Pizza.roast(); try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } Pizza.pack(); } }
相关文章推荐
- Java工厂模式的三种设计方式
- 设计模式(JAVA版):1.简单工厂模式
- Java设计模式——工厂模式
- java工厂模式
- Java设计模式之简单工厂
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
- Java设计模式:工厂模式
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
- java设计模式之抽象工厂
- Java 设计模式中,简单工厂、工厂方法、抽象工厂的区别
- Java设计模式之工厂方法模式
- 工厂模式——java设计模式
- 3.23种设计模式的Java版--Factory Method(工厂方法)
- JAVA设计模式之工厂模式
- Java设计模式——工厂设计模式
- java设计模式之一:普通工厂模式
- 软件设计模式之简单的工厂模式(JAVA实现)
- Java设计模式之工厂设计模式
- Java设计模式----------简单工厂类+工厂方法(FactoryMethod)
- java设计模式之工厂设计模式(简单工厂设计模式、工厂设计模式、抽象设计模式)