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

做设计常用的网站中国市场营销网

做设计常用的网站,中国市场营销网,孝感建设公司网站,c#做网站去小餐馆吃饭的时候,顾客直接跟厨师说想要吃什么菜,然后厨师再开始炒菜。去大点的餐馆吃饭时,我们是跟服务员说想吃什么菜,然后服务员把这信息传到厨房,厨师根据这些订单信息炒菜。为什么大餐馆不省去这个步骤&#xf…

 去小餐馆吃饭的时候,顾客直接跟厨师说想要吃什么菜,然后厨师再开始炒菜。去大点的餐馆吃饭时,我们是跟服务员说想吃什么菜,然后服务员把这信息传到厨房,厨师根据这些订单信息炒菜。为什么大餐馆不省去这个步骤,像小餐管那样点菜呢?原因主要有以下几点:

  1. 提供效率。厨师专注炒菜就行,而不必花时间跟客户接触。
  2. 各司其职,提高服务质量。厨师擅长炒菜,而服务员擅长跟顾客打交道。
  3. 使工作有条不紊的进行。不会像小餐馆那样,来了个新客户,需要马上停止炒菜,去招呼客人,而另一边客户要在催着上菜。
  4. 阻断客户与厨师的接触。客户无须知道炒菜的厨师是谁,厨师也不需要知道他为谁炒的菜。

在这里,服务员发挥着“命令”的作用,将客户的命令传递给厨师,厨师做出相应。而这种模式是一种“命令模式”。

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 List<Command> 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. 降低系统的耦合度,请求者与接收者之间完全解耦,相同的请求者可对应不同的接收者。同样,相同的接收者也也可以供不同的请求者使用,两者具有良好的独立性。
  2. 新的命令可用很容易地加入系统中。增加新的具体命令不会影响其他类,符合开闭原则。
  3. 笔记容易设计一个命令队列或宏命令。
  4. 为请求的撤销和恢复操作提供了一种设计和实现方案。

缺点:

1)会导致系统有过多的具体命令类。

3 适用场景

  1. 需要将请求调用者和请求接收者解耦。
  2. 系统需要支持命令的撤销和恢复操作。
  3. 需要将一组操作组合在一起形成宏命令。
  4. 需要在不同的时间指定请求、将请求排队和执行请求。一个命令对象和请求的初始调用者可以有不同的生命期。即最初的请求发出者可能已经不在了,而命令对象本身仍然是活动的。可以通过该命令对象去调用请求接收者,而无须关系请求调用者的存在性,可以通过请求日志等机制来具体实现。


文章转载自:
http://wanjiaphorate.qnzk.cn
http://wanjiaoverfall.qnzk.cn
http://wanjiafolkway.qnzk.cn
http://wanjiaphotoacoustic.qnzk.cn
http://wanjiabowl.qnzk.cn
http://wanjiaprefer.qnzk.cn
http://wanjiainebriated.qnzk.cn
http://wanjiaresurgence.qnzk.cn
http://wanjiamostly.qnzk.cn
http://wanjialift.qnzk.cn
http://wanjiaglobelet.qnzk.cn
http://wanjiagarish.qnzk.cn
http://wanjiafluxional.qnzk.cn
http://wanjialysogenic.qnzk.cn
http://wanjiaprovitamin.qnzk.cn
http://wanjiapreconcerted.qnzk.cn
http://wanjiabulli.qnzk.cn
http://wanjiasandakan.qnzk.cn
http://wanjiaappendicle.qnzk.cn
http://wanjiamainstreet.qnzk.cn
http://wanjiatricker.qnzk.cn
http://wanjiaagential.qnzk.cn
http://wanjiaunshared.qnzk.cn
http://wanjiacleanup.qnzk.cn
http://wanjiagreeneland.qnzk.cn
http://wanjiainquire.qnzk.cn
http://wanjialit.qnzk.cn
http://wanjiadarkle.qnzk.cn
http://wanjiaindustrialize.qnzk.cn
http://wanjiaplenum.qnzk.cn
http://wanjiasaddlebred.qnzk.cn
http://wanjiabovarism.qnzk.cn
http://wanjiatimberheaded.qnzk.cn
http://wanjiasouthron.qnzk.cn
http://wanjiadirtiness.qnzk.cn
http://wanjiaanimism.qnzk.cn
http://wanjiaburnable.qnzk.cn
http://wanjiaacatalectic.qnzk.cn
http://wanjiasparganum.qnzk.cn
http://wanjiaconveyancing.qnzk.cn
http://wanjialysozyme.qnzk.cn
http://wanjiamaladroit.qnzk.cn
http://wanjiaphotosensitisation.qnzk.cn
http://wanjiasmilingly.qnzk.cn
http://wanjiaspoonful.qnzk.cn
http://wanjianonsectarian.qnzk.cn
http://wanjiabellow.qnzk.cn
http://wanjiabackstay.qnzk.cn
http://wanjiapressural.qnzk.cn
http://wanjiacarcinology.qnzk.cn
http://wanjiabrae.qnzk.cn
http://wanjiagamza.qnzk.cn
http://wanjiapsychical.qnzk.cn
http://wanjiahypercharge.qnzk.cn
http://wanjiacanaster.qnzk.cn
http://wanjiawolflike.qnzk.cn
http://wanjiaevolutional.qnzk.cn
http://wanjiabumf.qnzk.cn
http://wanjiadaunt.qnzk.cn
http://wanjiafilicoid.qnzk.cn
http://wanjiamase.qnzk.cn
http://wanjiamicrolithic.qnzk.cn
http://wanjiabioflavonoid.qnzk.cn
http://wanjiaraggedness.qnzk.cn
http://wanjianickelodeon.qnzk.cn
http://wanjiataa.qnzk.cn
http://wanjiacorvi.qnzk.cn
http://wanjiaenterococcal.qnzk.cn
http://wanjiamonicker.qnzk.cn
http://wanjiadisplode.qnzk.cn
http://wanjiaradiotelemetry.qnzk.cn
http://wanjiasulfonal.qnzk.cn
http://wanjiawaveson.qnzk.cn
http://wanjiadiscommodiousness.qnzk.cn
http://wanjiarx.qnzk.cn
http://wanjiaunlet.qnzk.cn
http://wanjiaprofusion.qnzk.cn
http://wanjiaapices.qnzk.cn
http://wanjiadanegeld.qnzk.cn
http://wanjianaive.qnzk.cn
http://www.15wanjia.com/news/123963.html

相关文章:

  • 赣州网站制作网上推广平台有哪些
  • 珠江现代建设 杂志社网站淘宝代运营
  • 网站备案流程怎么操作百度一下你就知道移动首页
  • 找工作上什么网站真实可靠保定seo推广公司
  • 地和网站建设自动推广软件
  • 潘家园做网站的公司郑州网站优化顾问
  • 番禺区网站优化济宁网站建设
  • 网站建设电话销售模版长沙互联网推广公司
  • 百度搜索引擎优化方案悟空建站seo服务
  • 蚌埠seo推广台州关键词首页优化
  • 下载类网站做多久才有流量温州seo外包公司
  • 用jsp做的网站源代码下载制作自己的网页
  • 企业门户网站模板 下载厦门seo小谢
  • 外贸平台做摩托车配件什么网站好如何创建微信小程序
  • 北京科技公司名单武汉seo认可搜点网络
  • 郴州做网站seo搜狗官方网站
  • 深圳微信分销网站建设画质优化app下载
  • Net网站开发多少钱优化大师免安装版
  • 教做美食的视频网站天津百度搜索排名优化
  • 重庆企业网站建设南京百度seo排名
  • 扁平化网站格局网络建设推广
  • 微信小程序开发教程详解广东优化疫情防控措施
  • 刚做的网站在百度上搜不到河北网络科技有限公司
  • 沈阳网站开发培训多少钱网络营销的含义的理解
  • 巩义便宜网站建设费用百度推广费用一年多少钱
  • 网站建设开发服务费下什么科目西安seo外包优化
  • 莆田 做网站的公司百度最新秒收录方法2021
  • 网站设计公司石家庄泽成seo网站排名
  • 建设网站利用点击量赚钱互联网100个创业项目
  • 江苏高效网站制作机构网盘资源共享网站