返回本章节

返回作业目录


需求说明:

通过接口摸拟麦当劳食物生产过程

实现思路:

通过接口摸拟麦当劳食物生产过程的实现思路:

创建接口食物(Food),该接口需要被所有的食物类所实现。在该接口中定义getFood()方法。

创建麦香鸡类(McChicken) ,该类实现Food接口,并重写Food接口的getFood()方法。

创建薯条类(Chips),该类实现Food接口,并重写Food接口的getFood()方法。

创建生产食品的工厂类(FoodFactory),在该类中定义静态方法createFood(String type)方法,在该方法中通过传入参数的字符串值,判断用户需要何种食物,如果工厂中有该食物,则创建该食物对象,否则给出友好提示信息。

实现代码:

接口食物(Food):


public interface Food {
void getFood();
}

麦香鸡类(McChicken):

public class McChicken implements Food {
@Override
public void getFood() { }
}

薯条类(Chips):


public class Chips implements Food{
@Override
public void getFood() { }
}

生产食品的工厂类(FoodFactory):


public class FoodFactory {
public static Food createFood(String type){
//通过传递的字符串参数判断用户需要的食物
if(type.equals("mcchicken")) {
//如果条件满足则创建对象的食物对象
return new McChicken();
}else if(type.equals("chips")) {
return new Chips();
} else {
System.out.println("对不起没有该食物!");
return null;
}
}
}

创建客户(Client):

public class Client {
public static void main(String[] args) {
//通过食物工厂创建食物
Food mcchicken=FoodFactory.createFood("mcchicken");
mcchicken.getFood();
Food chips=FoodFactory.createFood("chips");
chips.getFood();
}
}

最新文章

  1. meta标签用法总结
  2. 浅淡HTML5移动Web开发
  3. Enter直接登录
  4. NHibernate从入门到精通系列
  5. Java中的文件操作
  6. 代理模式及其在spring与struts2中的体现
  7. Ruby On Rails 4 hello world,Ruby On Rails上手
  8. 武汉科技大学ACM :1009: 零起点学算法63——弓型矩阵
  9. 在EBS中如何创建CUX_TOP
  10. Android - Mac系统Android程序位置
  11. js中盒子模型常用的属性你还记得几个?
  12. c++趣味之难以发现的bug
  13. NVisionXR for ARCore内测版开放申请
  14. XMLTABLE
  15. 【SAP HANA】新建账户和数据库(2)
  16. html_之css
  17. kubernets 单节点安装
  18. 洛谷P1209修理牛棚题解
  19. C++ 函数的重载和参数默认值
  20. js基本类型和字符串的具体应用

热门文章

  1. C++ 数组元素循环右移问题
  2. vim中搜索指定单词(不加前后缀)
  3. Dockers启动Kafka
  4. JDBCUtils工具类的属性
  5. 通过jquery实现form表单提交后不跳转页面,保留当前页面
  6. Nginx中指令
  7. Oracle命名规则
  8. 阿里面试题: (a,b,c)组合索引, 查询语句select...from...where a=.. and c=..走索引吗?
  9. CF808A Lucky Year 题解
  10. MyBatis学习(三)MyBatis基于动态代理方式的增删改查