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

优化设计运营推广seo招聘

优化设计,运营推广seo招聘,上海网络营销培训,wordpress code editor去小餐馆吃饭的时候#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://wiki.neutronadmin.com/news/109837/

相关文章:

  • 北京网站建设网络公司域名如何注册?
  • 用新华做网站名是否侵权seo优化的价格
  • ...无锡网站制作上海专业的网站建
  • 网站运营知识旅游电子商务的三创赛网站建设
  • 备案停止网站dede网站如何换logo
  • 做网站相册移动端网站建设的方案
  • 渭南微网站建设中山网站建设模板网络公司
  • 网站首页轮播图怎么做的泰州做企业网站
  • 自建站有哪些站点企业管理培训课程机构
  • 东莞家具饰品东莞网站建设wordpress标题调用标签
  • 华为公司网站建设案例分析买网站
  • 网站建设 虚拟化适合大学生做的网站
  • 做品牌网站怎么样wordpress修改时区
  • 明星个人网站设计google搜索引擎入口
  • 成品网站免费模板食品公司
  • 如何建立自己的个人网站重庆好网互联
  • 十大国外室内设计网站六安哪家公司做网站好
  • wordpress 安装过程培训seo
  • 什么网站可以用视频做背景百度推广就是做网站吧
  • word网站的链接怎么做西安百度公司电话
  • 黑龙江省建设银行网站爱在发烧 wordpress
  • 榆林网站建设推广网站备案名字要怎么写
  • 西安高校定制网站建设朗朗上口的公司名称
  • 网站开发模块锦州网站建设品牌
  • 域名申请好了 要怎么做网站建瓯网站建设
  • dedecms网站地图插件优设网页设计官网
  • 交互做的好的中国网站中国电子工程师网
  • 定制网站制作费用网站视频下载windows
  • 什么是速成网站制作网站的固定成本
  • 萤火虫网站建设优化纯html5网站源码