酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

Java 实现 KFC 套餐建造者模式:一步步构建美味套餐

以下是使用 Java 实现 KFC 套餐的建造者模式示例代码: ```java import java.util.ArrayList; import java.util.List; // 套餐食物枚举 enum Food { HAMBURGER, CHICKEN_ROLL, JUICE, COKE } // 套餐类 class KfcCombo { private List<Food> foods; public KfcCombo() { foods = new ArrayList<>(); } public void addFood(Food food) { foods.add(food); } @Override public String toString() { StringBuilder sb = new StringBuilder("KFC Combo: "); for (Food food : foods) { sb.append(food.name()).append(" "); } return sb.toString(); } } // 套餐建造者抽象类 abstract class KfcComboBuilder { protected KfcCombo combo; public KfcCombo getCombo() { return combo; } public void createNewCombo() { combo = new KfcCombo(); } public abstract void buildMainDish(); public abstract void buildDrink(); } // 具体的套餐建造者 1 class Combo1Builder extends KfcComboBuilder { @Override public void buildMainDish() { combo.addFood(Food.HAMBURGER); } @Override public void buildDrink() { combo.addFood(Food.JUICE); } } // 具体的套餐建造者 2 class Combo2Builder extends KfcComboBuilder { @Override public void buildMainDish() { combo.addFood(Food.CHICKEN_ROLL); } @Override public void buildDrink() { combo.addFood(Food.COKE); } } // 服务员类 class Waiter { private KfcComboBuilder builder; public Waiter(KfcComboBuilder builder) { this.builder = builder; } public KfcCombo constructCombo() { builder.createNewCombo(); builder.buildMainDish(); builder.buildDrink(); return builder.getCombo(); } } public class KfcBuilderPatternExample { public static void main(String[] args) { // 使用套餐 1 的建造者 KfcComboBuilder combo1Builder = new Combo1Builder(); Waiter waiter1 = new Waiter(combo1Builder); KfcCombo combo1 = waiter1.constructCombo(); System.out.println(combo1); // 使用套餐 2 的建造者 KfcComboBuilder combo2Builder = new Combo2Builder(); Waiter waiter2 = new Waiter(combo2Builder); KfcCombo combo2 = waiter2.constructCombo(); System.out.println(combo2); } } ``` 在上述代码中,我们定义了`KfcCombo`表示套餐,`KfcComboBuilder`作为套餐建造者的抽象类,`Combo1Builder`和`Combo2Builder`是具体的建造者,`Waiter`类负责根据建造者来构建套餐。通过这种方式,实现了 KFC 套餐的建造过程。 ######[AI写代码神器 | 741点数解答 | 2024-10-24 16:59:56]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]