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

手机网站建设报价表许昌企业网站去哪开发

手机网站建设报价表,许昌企业网站去哪开发,wordpress中文docker,南宁做网站的公司去小餐馆吃饭的时候#xff0c;顾客直接跟厨师说想要吃什么菜#xff0c;然后厨师再开始炒菜。去大点的餐馆吃饭时#xff0c;我们是跟服务员说想吃什么菜#xff0c;然后服务员把这信息传到厨房#xff0c;厨师根据这些订单信息炒菜。为什么大餐馆不省去这个步骤#xf… 去小餐馆吃饭的时候顾客直接跟厨师说想要吃什么菜然后厨师再开始炒菜。去大点的餐馆吃饭时我们是跟服务员说想吃什么菜然后服务员把这信息传到厨房厨师根据这些订单信息炒菜。为什么大餐馆不省去这个步骤像小餐管那样点菜呢原因主要有以下几点 提供效率。厨师专注炒菜就行而不必花时间跟客户接触。各司其职提高服务质量。厨师擅长炒菜而服务员擅长跟顾客打交道。使工作有条不紊的进行。不会像小餐馆那样来了个新客户需要马上停止炒菜去招呼客人而另一边客户要在催着上菜。阻断客户与厨师的接触。客户无须知道炒菜的厨师是谁厨师也不需要知道他为谁炒的菜。 在这里服务员发挥着“命令”的作用将客户的命令传递给厨师厨师做出相应。而这种模式是一种“命令模式”。 1 命令模式概述 引入一个命令类通过命令类来降低发送者和接收者的耦合度。将一个请求封装成一个命令对象发送者只需指定一个命令对象再通过命令对象来调用请求接收者的处理方法。 图 命令模式结构图 Command抽象命令类一般是抽象类或接口。声明了用于执行请求的execute()等方法通过这些方法可调用请求接收者相关操作。 ConcreteCommand具体命令类对应具体接收者对象维护了一个接收者对象的引用在实现execute()方法时将调用接收者对象的相关操作(action()方法等)。 Invoker调用者即请求发送者。通过命令对象来执行请求。 Reciver接收者执行与请求相关的操作具体实现对请求的业务处理。 public interface Command {String getName();void makeOrder(String name);}public class WaiterCommand implements Command{private final String name;private CookReceiver cookReceiver;public WaiterCommand(String name, CookReceiver cookReceiver) {this.name name;this.cookReceiver cookReceiver;}public void setCookReceiver(CookReceiver cookReceiver) {this.cookReceiver cookReceiver;}Overridepublic String getName() {return name;}Overridepublic void makeOrder(String name) {System.out.print( cookReceiver.getName() );cookReceiver.cooking(name);}} public class CookReceiver {private final String name;public CookReceiver(String name) {this.name name;}public String getName() {return name;}public void cooking(String name) {System.out.println(开始做菜 name);}} public class CustomerInvoker {private Command waiter;public CustomerInvoker(Command waiter) {this.waiter waiter;}public void changeWaiter(Command waiter) {this.waiter waiter;}public void makeOrder(String name) {System.out.print(waiter.getName() 为客户下单);waiter.makeOrder(name);}} public class Client {private final static ListCommand waiterList new ArrayList();static {CookReceiver cook1 new CookReceiver(黄师傅);CookReceiver cook2 new CookReceiver(刘师傅);waiterList.add(new WaiterCommand(小李,cook1));waiterList.add(new WaiterCommand(小张,cook2));waiterList.add(new WaiterCommand(小王, cook1));}public static void main(String[] args) {String[] menu {辣椒炒肉,剁椒鱼头,清蒸豆腐,爆炒花甲,酸辣螺蛳粉};Random random new Random();for (int i 0; i 6; i) {CustomerInvoker invoker new CustomerInvoker(waiterList.get(random.nextInt( waiterList.size())));invoker.makeOrder(menu[random.nextInt(menu.length)]);System.out.println(--------------);} // 运行结果 // 小王为客户下单 黄师傅开始做菜酸辣螺蛳粉 // -------------- // 小王为客户下单 黄师傅开始做菜辣椒炒肉 // -------------- // 小张为客户下单 刘师傅开始做菜剁椒鱼头 // -------------- // 小张为客户下单 刘师傅开始做菜爆炒花甲 // -------------- // 小王为客户下单 黄师傅开始做菜辣椒炒肉 // -------------- // 小王为客户下单 黄师傅开始做菜酸辣螺蛳粉 // --------------}} 命令模式的本质是对请求进行封装一个请求对应一个命令。将发送命令与执行命令分割开但不能减少类的数量。 1.1 命令队列 一个请求发送者发送一个请求时不止一个请求接收者产生响应这些接收者将逐个执行业务方法完成对请求的处理。 图 命令队列结构图 2 优缺点 优点 降低系统的耦合度请求者与接收者之间完全解耦相同的请求者可对应不同的接收者。同样相同的接收者也也可以供不同的请求者使用两者具有良好的独立性。新的命令可用很容易地加入系统中。增加新的具体命令不会影响其他类符合开闭原则。笔记容易设计一个命令队列或宏命令。为请求的撤销和恢复操作提供了一种设计和实现方案。 缺点 1会导致系统有过多的具体命令类。 3 适用场景 需要将请求调用者和请求接收者解耦。系统需要支持命令的撤销和恢复操作。需要将一组操作组合在一起形成宏命令。需要在不同的时间指定请求、将请求排队和执行请求。一个命令对象和请求的初始调用者可以有不同的生命期。即最初的请求发出者可能已经不在了而命令对象本身仍然是活动的。可以通过该命令对象去调用请求接收者而无须关系请求调用者的存在性可以通过请求日志等机制来具体实现。
http://www.hkea.cn/news/14385485/

相关文章:

  • 网站平台设计费用多少如何快速搭建个人网站
  • 我想阻止一个网站要怎么做旅游网站建设策划书案例
  • 游戏网站建设表格新余建站公司
  • 多网站绑定域名美团网站开发合作商
  • 高端网站建设系统vs做网站各种控件的使用
  • 六安做网站购买深圳网站定制开发
  • 龙岗区住房和建设局官方网站医生在线咨询
  • 室内装饰公司网站模板国外优质网站
  • 关于网站建设的标语服务网站排名咨询
  • 石家庄网站快速优化排名搜索引擎外部链接优化
  • 如何找工程项目信息做站群网站好优化吗
  • 广东建设网站首页深圳货拉拉
  • 响应式网站的原理零售空间设计公司
  • 品展示设计网站黄山旅游
  • wordpress里验证谷歌站长百度seo软件
  • 苏州免费模板建站怎么做seo网站推广
  • 宜兴网站制作红色展览馆设计主题及创意
  • 游戏工作室网络组建方案百度小程序优化合作公司
  • 在微信上做彩票网站吗天推广人的网站
  • 网站建设实验心得烟台网站改版
  • 北京建设职工大学网站wordpress常量
  • .net网站源码下载免费申请信用卡
  • 网站推广广告 优帮云wordpress 电子杂志
  • 营销型建设网站装修设计平台有哪些
  • 男女做那个的免费视频网站wordpress 镜像插件
  • 菜篮网网站开发技术无锡网站设计制作
  • 怎么用自己的电脑做网站主机动漫是如何制作出来的
  • 青岛网站设计公司联系方式深圳网站建设怎么样
  • 微商可以做网站推广吗制作网页按钮
  • 怎么建一个购物网站企业网站 自助建站