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

seo优化或网站编辑东莞58同城

seo优化或网站编辑,东莞58同城,做公司网站要学会什么,公司起名字大全免费四字目录 一、前言 二、命令模式 三、总结 一、前言 命令模式#xff08;Command Pattern#xff09;是一种行为型设计模式#xff0c;命令模式将一个请求封装为一个对象#xff0c;从而可以用不同的请求对客户进行参数化#xff1b;对请求排队或记录请求日志#xff0c;以…目录 一、前言 二、命令模式 三、总结 一、前言 命令模式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 ListCommand 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://www.w-s-a.com/news/488515/

相关文章:

  • 网站后台打开慢站长之家网址ip查询
  • 图书馆网站设计方案家具设计作品
  • 马鞍山做网站公司排名徐州网站外包
  • 十堰微网站建设电话宣传型网站建设
  • 电脑制作网站教程网络公司除了建网站
  • 360制作网站搜网站网
  • 门户网站标题居中加大网站底部的制作
  • 网站建设项目费用报价ai软件下载
  • 面料 做网站重庆网站seo费用
  • 中国沈阳网站在哪里下载中国移动营销策略分析
  • 建设银行 钓鱼网站360免费建站教程
  • wordpress全站cdn网站运营年度推广方案
  • 成都网站开发培训机构网站开发 实习报告
  • 廊坊网站建设佛山厂商wordpress神主题
  • 成县建设局网站中国建筑有几个工程局
  • 网站打不开被拦截怎么办单页面网站制作
  • 关于协会网站建设的建议设计公司名字参考
  • 怎样申请做p2p融资网站页面设计时最好使用一种颜色
  • 一般做网站上传的图片大小网站软件设计
  • 用来网站备案注册什么公司好wordpress怎么搜索中文主题
  • 网站开发 打标签深圳软件公司排名
  • 邯郸的网站建设电子网站怎么做的
  • 中国企业信用网四川游戏seo整站优化
  • 下载站推广wordpress扩展字段
  • 网站建设这个工作怎么样免费电子版个人简历模板
  • 移动网站设计与制作网站开发接私活
  • 视频制作素材网站wordpress mysql 被删
  • 静态网站 模板公司一般都用什么邮箱
  • 做网站效果图是用ps还是ai泰安人才网最新招聘信息2022年
  • 免费建站网站一级大录像不卡在线看网页郑州网站关键