酷代码 AI
菜单
服务商

使用抽象工厂模式实现,要求如下: 快餐代工厂生产kfc和mdl两家快餐店的产品: 两家快餐店要求生产汉堡、炸鸡和饮料3种产品。 kfc生产鸡肉堡,奥尔良鸡腿,咖啡 mdl生产牛肉堡,炸鸡腿,橙汁 以后可能还会代工生产快餐店产品

好的,下面是一个使用抽象工厂模式实现的示例代码。这个模式允许我们为不同的快餐店创建一系列相关的产品对象,而无需指定具体的类。 抽象产品接口 首先,定义抽象产品接口: ```java // 汉堡接口 public interface Burger { String getName(); } // 炸鸡接口 public interface Chicken { String getName(); } // 饮料接口 public interface Drink { String getName(); } ``` 具体产品类 接下来,定义具体的产品类: ```java // KFC的具体产品 public class KFCBurger implements Burger { @Override public String getName() { return "鸡肉堡"; } } public class KFCChicken implements Chicken { @Override public String getName() { return "奥尔良鸡腿"; } } public class KFCDrink implements Drink { @Override public String getName() { return "咖啡"; } } // MDL的具体产品 public class MDLBurger implements Burger { @Override public String getName() { return "牛肉堡"; } } public class MDLChicken implements Chicken { @Override public String getName() { return "炸鸡腿"; } } public class MDLDrink implements Drink { @Override public String getName() { return "橙汁"; } } ``` 抽象工厂接口 定义抽象工厂接口: ```java public interface FastFoodFactory { Burger createBurger(); Chicken createChicken(); Drink createDrink(); } ``` 具体工厂类 实现具体工厂类: ```java // KFC工厂 public class KFCFactory implements FastFoodFactory { @Override public Burger createBurger() { return new KFCBurger(); } @Override public Chicken createChicken() { return new KFCChicken(); } @Override public Drink createDrink() { return new KFCDrink(); } } // MDL工厂 public class MDLFactory implements FastFoodFactory { @Override public Burger createBurger() { return new MDLBurger(); } @Override public Chicken createChicken() { return new MDLChicken(); } @Override public Drink createDrink() { return new MDLDrink(); } } ``` 客户端代码 客户端代码使用这些工厂来创建具体的产品: ```java public class Client { public static void main(String[] args) { FastFoodFactory kfcFactory = new KFCFactory(); FastFoodFactory mdlFactory = new MDLFactory(); Burger kfcBurger = kfcFactory.createBurger(); Chicken kfcChicken = kfcFactory.createChicken(); Drink kfcDrink = kfcFactory.createDrink(); System.out.println("KFC产品:"); System.out.println("汉堡: " + kfcBurger.getName()); System.out.println("炸鸡: " + kfcChicken.getName()); System.out.println("饮料: " + kfcDrink.getName()); Burger mdlBurger = mdlFactory.createBurger(); Chicken mdlChicken = mdlFactory.createChicken(); Drink mdlDrink = mdlFactory.createDrink(); System.out.println("MDL产品:"); System.out.println("汉堡: " + mdlBurger.getName()); System.out.println("炸鸡: " + mdlChicken.getName()); System.out.println("饮料: " + mdlDrink.getName()); } } ``` 未来扩展 如果将来需要添加新的快餐店,只需新增具体的产品类和对应的工厂类,而不需要修改现有的代码。例如,如果要添加一个新的快餐店 `BBQ`,可以这样做: 1. 新增具体产品类: ```java public class BBQBurger implements Burger { @Override public String getName() { return "烤肉堡"; } } public class BBQChicken implements Chicken { @Override public String getName() { return "烤鸡翅"; } } public class BBQDrink implements Drink { @Override public String getName() { return "可乐"; } } ``` 2. 新增具体工厂类: ```java public class BBQFactory implements FastFoodFactory { @Override public Burger createBurger() { return new BBQBurger(); } @Override public Chicken createChicken() { return new BBQChicken(); } @Override public Drink createDrink() { return new BBQDrink(); } } ``` 3. 在客户端代码中使用新的工厂: ```java FastFoodFactory bbqFactory = new BBQFactory(); Burger bbqBurger = bbqFactory.createBurger(); Chicken bbqChicken = bbqFactory.createChicken(); Drink bbqDrink = bbqFactory.createDrink(); System.out.println("BBQ产品:"); System.out.println("汉堡: " + bbqBurger.getName()); System.out.println("炸鸡: " + bbqChicken.getName()); System.out.println("饮料: " + bbqDrink.getName()); ``` 这样,通过抽象工厂模式,我们可以轻松地扩展系统以支持更多的快餐店及其产品。 [2024-10-24 17:29:25 | AI写代码神器 | 1127点数解答]

相关提问
实用工具查看更多
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]
数独游戏 [娱乐类]
经典推箱子 [娱乐类]
AI摸鱼五子棋 [娱乐类]