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

好的网站建设wordpress 创建招生网

好的网站建设,wordpress 创建招生网,公司网站维护建设的通知,上海的外企公司有哪些命令模式包含以下主要角色#xff1a;抽象命令类#xff08;Command#xff09;角色#xff1a; 定义命令的接口#xff0c;声明执行的方法。具体命令#xff08;Concrete Command#xff09;角色#xff1a;具体的命令#xff0c;实现命令接口#xff1b;通常会持有…命令模式包含以下主要角色抽象命令类Command角色 定义命令的接口声明执行的方法。具体命令Concrete Command角色具体的命令实现命令接口通常会持有接收者并调用接收者的功能来完成命令要执行的操作。实现者/接收者Receiver角色 接收者真正执行命令的对象。任何类都可能成为一个接收者只要它能够实现命令要求实现的相应功能。调用者/请求者Invoker角色 要求命令对象执行请求通常会持有命令对象可以持有很多的命令对象。这个是客户端真正触发命令并要求命令执行相应操作的地方也就是说相当于使用命令对象的入口。将上面的案例用代码实现那我们就需要分析命令模式的角色在该案例中由谁来充当。服务员 就是调用者角色由她来发起命令。资深大厨 就是接收者角色真正命令执行的对象。订单 命令中包含订单。类图如下代码如下publicinterfaceCommand{voidexecute();//只需要定义一个统一的执行方法}publicclassOrderCommandimplementsCommand{//持有接受者对象privateSeniorChef receiver;privateOrder order;publicOrderCommand(SeniorChef receiver,Order order){this.receiver receiver;this.order order;}publicvoidexecute(){System.out.println(order.getDiningTable()桌的订单);SetString keys order.getFoodDic().keySet();for(String key : keys){receiver.makeFood(order.getFoodDic().get(key),key);}try{Thread.sleep(100);//停顿一下 模拟做饭的过程}catch(InterruptedException e){e.printStackTrace();}System.out.println(order.getDiningTable()桌的饭弄好了);}}publicclassOrder{// 餐桌号码privateint diningTable;// 用来存储餐名并记录份数privateMapString,Integer foodDic newHashMapString,Integer();publicintgetDiningTable(){return diningTable;}publicvoidsetDiningTable(int diningTable){this.diningTable diningTable;}publicMapString,IntegergetFoodDic(){return foodDic;}publicvoidsetFoodDic(String name,int num){foodDic.put(name,num);}}// 资深大厨类 是命令的ReceiverpublicclassSeniorChef{publicvoidmakeFood(int num,String foodName){System.out.println(num 份 foodName);}}publicclassWaitor{privateArrayListCommand commands;//可以持有很多的命令对象publicWaitor(){commands newArrayList();}publicvoidsetCommand(Command cmd){commands.add(cmd);}// 发出命令 喊 订单来了厨师开始执行publicvoidorderUp(){System.out.println(美女服务员叮咚大厨新订单来了.......);for(int i 0; i commands.size(); i){Command cmd commands.get(i);if(cmd !null){cmd.execute();}}}}publicclassClient{publicstaticvoidmain(String[] args){//创建2个orderOrder order1 newOrder();order1.setDiningTable(1);order1.getFoodDic().put(西红柿鸡蛋面,1);order1.getFoodDic().put(小杯可乐,2);Order order2 newOrder();order2.setDiningTable(3);order2.getFoodDic().put(尖椒肉丝盖饭,1);order2.getFoodDic().put(小杯雪碧,1);//创建接收者SeniorChef receivernewSeniorChef();//将订单和接收者封装成命令对象OrderCommand cmd1 newOrderCommand(receiver, order1);OrderCommand cmd2 newOrderCommand(receiver, order2);//创建调用者 waitorWaitor invoker newWaitor();invoker.setCommand(cmd1);invoker.setCommand(cmd2);//将订单带到柜台 并向厨师喊 订单来了invoker.orderUp();}}1.优点降低系统的耦合度。命令模式能将调用操作的对象与实现该操作的对象解耦。增加或删除命令非常方便。采用命令模式增加与删除命令不会影响其他类它满足“开闭原则”对扩展比较灵活。可以实现宏命令。命令模式可以与组合模式结合将多个命令装配成一个组合命令即宏命令。方便实现 Undo 和 Redo 操作。命令模式可以与后面介绍的备忘录模式结合实现命令的撤销与恢复。2.缺点使用命令模式可能会导致某些系统有过多的具体命令类。系统结构更加复杂。使用场景系统需要将请求调用者和请求接收者解耦使得调用者和接收者不直接交互。系统需要在不同的时间指定请求、将请求排队和执行请求。系统需要支持命令的撤销(Undo)操作和恢复(Redo)操作。
http://www.dnsts.com.cn/news/200264.html

相关文章:

  • 重庆市建设工程造价站wordpress国际化
  • 网站收录差南昌做网站软件
  • 潍坊网站建设价南通做百度网站的公司网站
  • 网站建设项目验收方案珠海市建设局网站
  • 广州企业网站建设开发学习建网站
  • 运营一个网站一年费用雷州手机网站建设
  • dede免费模板教育网站做网站需要几个人
  • wap网站程序单招网是哪个网站制作公司做的
  • 哈尔滨做网站数据平台的公司广州网站制作哪家强
  • 做网站需要用什么开发软件为什么做网站备案的人态度差
  • 网站建设与管理试卷wordpress百万文章
  • 网站开发推荐一本书网站没有备案会怎样
  • 有哪些可以做翻译兼职的网站佛山室内设计公司排名
  • 网站建设都用什么软件网站建设运营要求
  • 网站开发实习计划模板网站开发前端制作
  • 团购网站模板有哪些网站可以做简历
  • 网站优化免费软件百度学术搜索入口
  • 海外专线网络黄冈网站建设银行网站安全分析
  • 本溪网站设计电商网站开发需要多少钱
  • 北京网站建设开发公司电商网站建站
  • 360免费建站可以免费又永久吗网站怎么做才是对搜索引擎友好
  • 江门网站建设优化重庆网站建设技术支持
  • 可以发外链的网站整理中国建筑工业出版社
  • 调整网站模板大小个人简历表模板电子版
  • 怎样建设尧都水果网站企业文化墙内容设计
  • 怎么做网站的寄生性价比高seo排名优化的
  • wordpress站点改名html5用什么软件
  • 个人网站心得服装公司电子商务网站建设策划书
  • 有没有什么做高数的网站百度竞价推广代理商
  • 做网站 点击跳转设计制作电子演示文稿不是