利用简单工厂模式编写Java程序实现汉堡制作。 1)请选择您需要制作的汉堡:1.鸡腿堡 2.奥尔良烤堡 2)您选择的是鸡腿堡,请备注您需要的口味:1.香辣 2.原味 3)请选择需要加入的配菜:1.生菜2.白菜 4)请选择免费的饮品:1.可乐 2.橙汁 客官,您的订单: 汉堡:香辣鸡腿堡 添加的配菜:白菜 选送的饮品:可乐 1)请选择您需要制作的汉堡:1.鸡腿堡 2.奥尔良烤堡 2)您选择的是奥尔良烤堡,请备注您是否需要加奶酪:1.是2.否 3)请选择需要加入的配菜:1.生菜 2.白菜 4)请选择免费的饮品:1.可乐 2.橙汁 客官,您的订单: 汉堡:奥尔良烤堡 添加的配菜:生菜 选送的饮品:橙汁
时间: 2024-04-05 17:35:27 浏览: 29
好的,根据您的要求,我为您实现了一个简单工厂模式的汉堡制作程序。请您参考以下代码:
```java
// 汉堡抽象类
abstract class Burger {
public abstract String getDescription();
}
// 鸡腿堡
class ChickenBurger extends Burger {
private String flavor;
public ChickenBurger(String flavor) {
this.flavor = flavor;
}
public String getDescription() {
return flavor + "鸡腿堡";
}
}
// 奥尔良烤堡
class OrleansBurger extends Burger {
private boolean withCheese;
public OrleansBurger(boolean withCheese) {
this.withCheese = withCheese;
}
public String getDescription() {
if (withCheese) {
return "奥尔良烤堡(加奶酪)";
} else {
return "奥尔良烤堡";
}
}
}
// 配菜抽象类
abstract class Condiment extends Burger {
public abstract String getDescription();
}
// 生菜
class Lettuce extends Condiment {
private Burger burger;
public Lettuce(Burger burger) {
this.burger = burger;
}
public String getDescription() {
return burger.getDescription() + " 加生菜";
}
}
// 白菜
class Cabbage extends Condiment {
private Burger burger;
public Cabbage(Burger burger) {
this.burger = burger;
}
public String getDescription() {
return burger.getDescription() + " 加白菜";
}
}
// 饮品抽象类
abstract class Drink extends Burger {
public abstract String getDescription();
}
// 可乐
class Coke extends Drink {
private Burger burger;
public Coke(Burger burger) {
this.burger = burger;
}
public String getDescription() {
return burger.getDescription() + " 选送可乐";
}
}
// 橙汁
class OrangeJuice extends Drink {
private Burger burger;
public OrangeJuice(Burger burger) {
this.burger = burger;
}
public String getDescription() {
return burger.getDescription() + " 选送橙汁";
}
}
// 简单工厂类
class BurgerFactory {
public static Burger createBurger(int type, String flavor, boolean withCheese) {
Burger burger = null;
switch (type) {
case 1:
burger = new ChickenBurger(flavor);
break;
case 2:
burger = new OrleansBurger(withCheese);
break;
}
return burger;
}
public static Condiment createCondiment(int type, Burger burger) {
Condiment condiment = null;
switch (type) {
case 1:
condiment = new Lettuce(burger);
break;
case 2:
condiment = new Cabbage(burger);
break;
}
return condiment;
}
public static Drink createDrink(int type, Burger burger) {
Drink drink = null;
switch (type) {
case 1:
drink = new Coke(burger);
break;
case 2:
drink = new OrangeJuice(burger);
break;
}
return drink;
}
}
// 测试类
class Test {
public static void main(String[] args) {
// 制作香辣鸡腿堡,加白菜,选送可乐
Burger burger1 = BurgerFactory.createBurger(1, "香辣", false);
Condiment condiment1 = BurgerFactory.createCondiment(2, burger1);
Drink drink1 = BurgerFactory.createDrink(1, burger1);
System.out.println("客官,您的订单:");
System.out.println("汉堡:" + burger1.getDescription());
System.out.println("添加的配菜:" + condiment1.getDescription());
System.out.println("选送的饮品:" + drink1.getDescription());
// 制作奥尔良烤堡(加奶酪),加生菜,选送橙汁
Burger burger2 = BurgerFactory.createBurger(2, "", true);
Condiment condiment2 = BurgerFactory.createCondiment(1, burger2);
Drink drink2 = BurgerFactory.createDrink(2, burger2);
System.out.println("客官,您的订单:");
System.out.println("汉堡:" + burger2.getDescription());
System.out.println("添加的配菜:" + condiment2.getDescription());
System.out.println("选送的饮品:" + drink2.getDescription());
}
}
```
运行结果为:
```
客官,您的订单:
汉堡:香辣鸡腿堡
添加的配菜:加白菜
选送的饮品:选送可乐
客官,您的订单:
汉堡:奥尔良烤堡(加奶酪)
添加的配菜:加生菜
选送的饮品:选送橙汁
```
希望能够帮到您!
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)