当前位置: 首页 > 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.yayakq.cn/news/973552/

相关文章:

  • 公众号微网站开发制作网页心得
  • 哪个公司做外贸网站好现在做网站公司
  • seo网站推广软件电视剧排行榜
  • 东莞网站到首页排名昆明seo网站建设费用
  • 邢台建设厅网站网站建设网页设计培训学校
  • 两学一做考试网站百度网盘可以做网站吗
  • 泰安网站优化公司做照明出口的网站
  • 网站建设排名优化石大远程网页设计及网站建设答案
  • 中国公路建设行业协会网站个人网页设计论文免费
  • 青海制作网站的公司贵州建设考试网站
  • 网站建设十年经验编程软件python下载
  • 建设官网的网站国外直播平台tiktok下载
  • 地图类网站开发实战教程网站的设计 更新
  • 泰州公司做网站优秀的网站开发
  • 汉中网站seowordpress 运行好慢
  • 全国招聘网站排名阅文集团旗下哪个网站做的最好
  • 以前做视频的网站iis网站压缩
  • 佛山优化网站公司ios软件开发前景
  • 微信网站如何开发深圳哪个网站好推广一点
  • 网站模板插件定西市建设局网站
  • 男子做网站临邑县住房和城乡建设局网站
  • 站长工具seo综合查询外部链接数量手机网站建设规划图
  • 网站建设企业网站建设网站排版布局比例
  • 外贸网站开发开发漳州网
  • 高校网站建设需求分析报告湖南网站建设磐石网络答疑
  • 个人如何做商城网站南京网页设计招聘
  • 西部数码如何建设自己的网站福州专业的seo软件
  • 公司搭建网站步骤网站建设价格与方案
  • 团购网站建设流程如何管理wordpress
  • 做网站程序的都不关注seossl aws wordpress