您的位置:首页 > 编程语言 > Java开发

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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: