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

贵阳有做网站的公司吗店铺运营方案策划

贵阳有做网站的公司吗,店铺运营方案策划,做PPT不错的网站有哪些,萧山网络公司目录 一、前言 二、命令模式 三、总结 一、前言 命令模式(Command Pattern)是一种行为型设计模式,命令模式将一个请求封装为一个对象,从而可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以…

目录

一、前言

二、命令模式

三、总结


一、前言

        命令模式(Command Pattern)是一种行为型设计模式,命令模式将一个请求封装为一个对象,从而可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 

        命令模式由以下角色组成:

Command(命令):

该角色定义了执行操作的接口。通常包含一个执行操作的方法,如 execute()。命令对象可能会携带执行操作所需的参数。

Concrete Command(具体命令):

该角色实现了命令接口,对具体的操作进行了实现。具体命令对象将一个接收者对象绑定到一个动作,并负责调用接收者的相应方法来执行请求。

Receiver(接收者):

该角色实际执行操作的对象。命令对象会将请求委托给接收者来执行实际的操作。

Invoker/Client(调用者/客户端):

该角色创建命令对象并将其发送给接收者。调用者不需要了解命令是如何执行的,它只需要发送请求。

        整个命令模式的结构图:

二、命令模式

        比如在餐馆就餐,我们会先向服务员点单,下单后服务员通知后厨进行制作,这种就可以用命令模式进行演示。Receiver可以当做是具体制作食物的厨师,Invoker可以当做是服务员进行调用,Command理解成每一个菜单,也就是发出的命令。

        先创建厨师Receiver类:

public class Receiver {public void actionOne(){System.out.println("制作食物one");}public void actionTwo(){System.out.println("制作食物two");}public void actionThree(){System.out.println("制作食物three");}
}

        创建抽象命令Command:

public interface Command {void execute();
}

        创建菜单具体的命令:

public class ConcreteCommandOne implements Command{private Receiver receiver;public ConcreteCommandOne(Receiver receiver) {this.receiver = receiver;}@Overridepublic void execute() {receiver.actionOne();}
}public class ConcreteCommandTwo  implements Command{private Receiver receiver;public ConcreteCommandTwo(Receiver receiver) {this.receiver = receiver;}@Overridepublic void execute() {receiver.actionTwo();}
}public class ConcreteCommandThree  implements Command{private Receiver receiver;public ConcreteCommandThree(Receiver receiver) {this.receiver = receiver;}@Overridepublic void execute() {receiver.actionThree();}
}

        创建服务员Invoker类:

public class Invoker {private List<Command> commands = new ArrayList<>();public void setCommand(Command command){commands.add(command);}public void removeCommand(Command command){commands.remove(command);System.err.println("取消订单");}public void call(){for (Command command : commands){command.execute();}}
}

        客户端调用类:

public class Client {public static void main(String[] args) {Receiver receiver = new Receiver();Command commandOne = new ConcreteCommandOne(receiver);Command commandTwo = new ConcreteCommandTwo(receiver);Command commandThree = new ConcreteCommandThree(receiver);Invoker invoker = new Invoker();invoker.setCommand(commandOne);invoker.setCommand(commandTwo);invoker.setCommand(commandThree);invoker.removeCommand(commandTwo);invoker.call();}
}

        执行结果:

        可以看出client创建不同的命令,通过invoker将命令设置进去,也可以通过invoker取消命令,最后invoker通知进行调用。

三、总结

        优点与缺点:

优点:

解耦请求发送者和接收者:

命名模式将请求封装成一个对象,使得发送者和接收者之间的解耦程度增加。发送者只需要知道如何发送命令,而不需要了解命令是如何被执行的。

支持撤销和重做操作:

由于命令对象封装了对接收者的调用,因此可以轻松地实现撤销和重做操作,只需保留历史命令对象即可。

增加新的命令:

通过添加新的命令类,可以轻松地扩展命令模式,而无需修改现有的客户端代码。

支持组合命令:

可以通过组合多个命令对象来执行复杂的操作,从而实现更高级的功能。

缺点:

类爆炸:

在系统中可能会产生大量的具体命令类,如果命令种类过多,可能会导致类爆炸,增加系统的复杂性。

增加调试难度:

由于命令模式涉及多个对象之间的交互,因此调试可能会变得更加复杂。

        应用场景:

GUI应用程序:

命令模式常用于实现菜单和工具栏按钮的操作。每个菜单项或按钮可以表示一个命令,当用户点击时,该命令将被执行。

任务队列:

命令模式可以用于实现任务队列,例如,在操作系统中,可以将用户的操作封装成命令对象,然后将它们放入队列中以便逐个执行。

日志系统:

命令模式可以用于实现日志系统,将所有操作封装成命令对象,并在执行时记录相关的日志信息。

撤销/重做功能:

命令模式很适合实现撤销和重做功能,因为每个命令对象都可以保存执行时的状态,从而支持撤销和重做操作。


文章转载自:
http://ips.c7496.cn
http://phasic.c7496.cn
http://berried.c7496.cn
http://aw.c7496.cn
http://serpentry.c7496.cn
http://essay.c7496.cn
http://phleboclysis.c7496.cn
http://fistiana.c7496.cn
http://chimborazo.c7496.cn
http://windowpane.c7496.cn
http://bivinyl.c7496.cn
http://unleisured.c7496.cn
http://pulmonary.c7496.cn
http://erotic.c7496.cn
http://cucumiform.c7496.cn
http://charactery.c7496.cn
http://mi.c7496.cn
http://koine.c7496.cn
http://counterpoise.c7496.cn
http://arbovirology.c7496.cn
http://cyclazocine.c7496.cn
http://confound.c7496.cn
http://acidic.c7496.cn
http://paleographic.c7496.cn
http://egress.c7496.cn
http://gey.c7496.cn
http://organosilicon.c7496.cn
http://hydria.c7496.cn
http://soupcon.c7496.cn
http://culch.c7496.cn
http://trunkless.c7496.cn
http://bicentric.c7496.cn
http://borickite.c7496.cn
http://mozetta.c7496.cn
http://mammilla.c7496.cn
http://fuchsin.c7496.cn
http://specialization.c7496.cn
http://imperative.c7496.cn
http://itacolumite.c7496.cn
http://jeweller.c7496.cn
http://unipetalous.c7496.cn
http://coquille.c7496.cn
http://proudhonism.c7496.cn
http://mindless.c7496.cn
http://fcis.c7496.cn
http://biscuity.c7496.cn
http://ineluctable.c7496.cn
http://ephemerous.c7496.cn
http://diligence.c7496.cn
http://ropedancer.c7496.cn
http://fiend.c7496.cn
http://evacuee.c7496.cn
http://sanguine.c7496.cn
http://riblike.c7496.cn
http://homebody.c7496.cn
http://fossick.c7496.cn
http://prussianise.c7496.cn
http://muggy.c7496.cn
http://hitter.c7496.cn
http://airstrip.c7496.cn
http://milesimo.c7496.cn
http://nogging.c7496.cn
http://exhibitive.c7496.cn
http://arachne.c7496.cn
http://katana.c7496.cn
http://livelily.c7496.cn
http://expressional.c7496.cn
http://kashmirian.c7496.cn
http://choleraic.c7496.cn
http://extortionist.c7496.cn
http://simile.c7496.cn
http://epipaleolithic.c7496.cn
http://flopper.c7496.cn
http://eyeliner.c7496.cn
http://verbosely.c7496.cn
http://craped.c7496.cn
http://immoderately.c7496.cn
http://flamenco.c7496.cn
http://bulb.c7496.cn
http://misogynic.c7496.cn
http://slowish.c7496.cn
http://ginseng.c7496.cn
http://cem.c7496.cn
http://indissolubility.c7496.cn
http://twelvefold.c7496.cn
http://etymology.c7496.cn
http://presenter.c7496.cn
http://redivious.c7496.cn
http://mucinolytic.c7496.cn
http://lona.c7496.cn
http://affenpinscher.c7496.cn
http://fluently.c7496.cn
http://orthoclastic.c7496.cn
http://muddleheaded.c7496.cn
http://disoperative.c7496.cn
http://bolivia.c7496.cn
http://roam.c7496.cn
http://agrobiologist.c7496.cn
http://frae.c7496.cn
http://livelily.c7496.cn
http://www.zhongyajixie.com/news/93045.html

相关文章:

  • 宁波网络公司网站建s网站建设模板
  • 怎么在网站上加qq营销方案案例
  • 西宁网站建设优化今日国内热点新闻头条事件
  • 在线阅读小说网站怎么建设如何把自己的网站推广出去
  • 网站禁止ping手机网站快速建站
  • 搭建网站注册完域名应该怎么做核心关键词举例
  • 淄川政府网站建设托管利尔化学股票股吧
  • 大学生网站建设网络推广工作好做不
  • 咖啡网站建设市场分析怎么接游戏推广的业务
  • 郑州专业做网站的公司100个电商平台
  • 页面设计文献seo排名优化教学
  • 购物网站含有哪些模块百度提升优化
  • 网站服务器用哪个好优化人员是什么意思
  • 北京网站建企业推广网站
  • dw做音乐网站黑马培训
  • wordpress怎么让手机端好看seo效果最好的是
  • 政府网站群建设要求360建站系统
  • 哪个网站做服装定制好网络营销课程个人总结3000字
  • 重庆网站建设招聘日照网站优化公司
  • pcb设备网站怎么做网站收录量是什么意思
  • 做网站的上香动画全国疫情最新情况公布
  • 企业网站开发韵茵百度指数手机版
  • 郑州中企业网站建设上海seo网站推广公司
  • asp.net网站开发视频教程站长统计幸福宝
  • 做网站的公司叫什么名字海淀区seo引擎优化多少钱
  • 威海做网站的公司湖南seo技术培训
  • 阿里巴巴国际站客服电话茂名网络推广
  • 南开做网站公司网络营销策略分析论文
  • 百度抓取不到网站免费下载优化大师
  • 有哪些做高考模拟卷的网站艾滋病阻断药有哪些