当前位置: 首页 > news >正文

网页模板网站生成百度导航最新版本下载安装

网页模板网站生成,百度导航最新版本下载安装,哪些网站可以做英语等级试题,个人注册企业查询1 命令模式介绍 2 命令模式原理 3 命令模式实现 模拟酒店后厨的出餐流程,来对命令模式进行一个演示,命令模式角色的角色与案例中角色的对应关系如下: 服务员: 即调用者角色,由她来发起命令. 厨师: 接收者,真正执行命令的对象. 订单: 命令中包含订单 /*** 订单类**/ public cl…
1 命令模式介绍

在这里插入图片描述

2 命令模式原理

在这里插入图片描述
在这里插入图片描述

3 命令模式实现

模拟酒店后厨的出餐流程,来对命令模式进行一个演示,命令模式角色的角色与案例中角色的对应关系如下:
服务员: 即调用者角色,由她来发起命令.
厨师: 接收者,真正执行命令的对象.
订单: 命令中包含订单

/*** 订单类**/
public class Order {private int diningTable;  //餐桌号码private Map<String,Integer> foodMenu = new HashMap<>();  //存储菜名和份数public int getDiningTable() {return diningTable;}public void setDiningTable(int diningTable) {this.diningTable = diningTable;}public Map<String, Integer> getFoodMenu() {return foodMenu;}public void setFoodMenu(Map<String, Integer> foodMenu) {this.foodMenu = foodMenu;}
}
/*** 厨师类 -> Receiver接收者角色**/
public class Chef {public void makeFood(int num , String foodName){System.out.println(num + "份, " + foodName);}
}
/*** 抽象命令接口**/
public interface Command {void execute(); //统一的执行方法
}
/*** 具体命令**/
public class OrderCommand implements Command {//接收者对象的引用private Chef receiver;private Order order;public OrderCommand(Chef receiver, Order order) {this.receiver = receiver;this.order = order;}@Overridepublic void execute() {System.out.println(order.getDiningTable() + "桌的订单: ");Set<String> keySet = order.getFoodMenu().keySet();for (String key : keySet) {receiver.makeFood(order.getFoodMenu().get(key),key);}try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(order.getDiningTable() + "桌的菜品已经上齐!");}}
/*** 服务员 -> Invoker 调用者**/
public class Waiter {//可以持有多个命令对象private ArrayList<Command> commands;public Waiter() {this.commands = new ArrayList<>();}public Waiter(ArrayList<Command> commands) {this.commands = commands;}public void setCommand(Command command) {this.commands.add(command);}//发出指令public void orderUp(){System.out.println("叮咚! 服务员: 有新的订单,请师傅开始制作......");for (Command command : commands) {if(command != null){command.execute();}}}
}
public class Client {public static void main(String[] args) {Order order1 = new Order();order1.setDiningTable(10);order1.getFoodMenu().put("鲍鱼炒饭",1);order1.getFoodMenu().put("海参炒面",1);Order order2 = new Order();order2.setDiningTable(15);order2.getFoodMenu().put("回锅肉盖饭",1);order2.getFoodMenu().put("木须肉盖饭",1);//创建接收者Chef chef = new Chef();//将订单和接收者封装成命令对象OrderCommand cmd1 = new OrderCommand(chef, order1);OrderCommand cmd2 = new OrderCommand(chef, order2);//创建调用者Waiter waiter = new Waiter();waiter.setCommand(cmd1);waiter.setCommand(cmd2);//将订单发送给厨师 上菜waiter.orderUp();}
}
4 命令模式总结

在这里插入图片描述
在这里插入图片描述

http://www.shuangfujiaoyu.com/news/28340.html

相关文章:

  • 建一千个网站做长尾词有效果吗seo短视频加密路线
  • 退役军人事务部网站建设百度指数上多少就算热词
  • wordpress 301 ssl谷歌seo和百度seo
  • 怎么让同一个局域网上的计算机看到我做的网站软文优化
  • 西安有一个电影他要拉投资做网站sem推广外包
  • 做网站沈阳广州营销优化
  • webform做网站 适应屏幕大小个人网页
  • 只做一种产品的网站万能引流软件
  • 广州开发区建设和环境保护网站搜狗搜索引擎优化论文
  • 兰州新区规划建设局网站如何创建一个app
  • 网站建设流程是这样的 里面有很建站优化公司
  • 郑州做网站优化运营商专业seo整站优化
  • 浙江高端建设网站百度官网下载安装
  • 红色文化网站建设百度推广手机app下载
  • 长春网站排名推广大数据营销系统怎么样
  • 线上企业订单管理系统网站网站搭建源码
  • 黄冈公司做网站建立网站需要多少钱
  • 江西省建设工程安全质量监督管理局网站站长之家查询的网址
  • php网站开发视频教程下载网络推广公司名字大全
  • 给wordpress上锁拼多多标题关键词优化方法
  • 南昌哪个公司做网站好微商软文范例
  • 传销教你做网站网站关键词排名优化
  • wordpress建站seo国际军事形势最新消息
  • 如何提升网站的权重怎么做网站?
  • 网站交易平台怎么注册成都seo达人
  • 贵阳网站开发公司永久免费wap自助建站
  • 广东网站制作多少钱seo关键词布局技巧
  • 做网站回答上海网站推广广告
  • 跨境经验分享保定seo博客
  • 东莞怎么制作网站“跨年”等关键词搜索达年内峰值