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

建设网站材料可以下载吗seo谷歌

建设网站材料可以下载吗,seo谷歌,dns是不是做网站用的,网站建设做什么费用目录 前言 UML plantuml 类图 实战代码 模板 Command Invoker Receiver Client 前言 命令模式解耦了命令请求者(Invoker)和命令执行者(receiver),使得 Invoker 不再直接引用 receiver,而是依赖于…

目录

前言

UML

plantuml

类图

实战代码

模板

Command

Invoker

Receiver

Client


前言

命令模式解耦了命令请求者(Invoker)和命令执行者(receiver),使得 Invoker 不再直接引用 receiver,而是依赖于抽象的命令接口。具体的命令类则直接引用 receiver,通过调用 receiver 的方法来执行命令。

解耦之后,具体命令的增删改不再影响 Invoker,同时,抽象出来的命令请求还能队列化,从而实现撤销和重试功能,或做排列组合合成复杂的命令。

在 Invoker 中,也体现了桥接模式的思想,将命令的抽象和具体的实现分离,使 Invoker 中命令的添加和扩展更加简单。不过具体的命令类并不直接实现处理逻辑,而是交给了 receiver 来实现,这也是命令模式和桥接模式最主要的区别。

UML

plantuml

@startuml
'https://plantuml.com/class-diagraminterface Command {+ execute() : void
}class CommandA {- receiver : Receiver+ CommandA(Receiver)+ execute() : void
}class CommandB {- receiver : Receiver+ CommandB(Receiver)+ execute() : void
}class Receiver {+ executeA() : void+ executeB() : void
}class Invoker {- commands : List<Command>+ addCommand(Command) : void+ execute(Command) : void+ executes() : void
}class Client {}Command <|.. CommandA
Command <|.. CommandBCommandA "1" --> "1" Receiver
CommandB "1" --> "1" ReceiverInvoker "1" --> "n" CommandClient ..> Invoker
Client ..> Command@enduml

类图

实战代码

模板

Command

public interface Command {void execute();
}public class ConcreteCommand1 implements Command {private Receiver receiver;public ConcreteCommand1(Receiver receiver) {this.receiver = receiver;}public void execute() {receiver.execute1();}
}public class ConcreteCommand2 implements Command {private Receiver receiver;public ConcreteCommand2(Receiver receiver) {this.receiver = receiver;}public void execute() {receiver.execute2();}
}

Invoker

public class Invoker {private List<Command> commands = new ArrayList<Command>();public void addCommand(Command command){commands.add(command);}public void execute(Command command){command.execute();}public void executes(){for(Command command : commands){command.execute();}commands.clear();}
}

Receiver

public class Receiver {public void execute1() {System.out.println("execute1.");}public void execute2() {System.out.println("execute2.");}
}

Client

public class Test {public static void main(String[] args) {Receiver receiver = new Receiver();Invoker invoker = new Invoker();invoker.execute(new Command1(receiver));invoker.addAction(new Command1(receiver));invoker.addAction(new Command2(receiver));invoker.executes();}
}

http://www.yayakq.cn/news/252988/

相关文章:

  • 做vr效果图的网站建设淘宝网站的人员组织结构
  • 企业网站实名审核中心肥西县建设局网站
  • 律师事务所网站建设北师大网页制作与网站建设期末考试
  • 怎么把源码做网站自助建站免费永久
  • 兰州做网站改版的公司做网站需要会的软件
  • 论坛网站制作seo推广软件哪个好
  • 莆田网站开发公司网站设计与推广
  • 网站关键词挖掘wordpress 笑话源码
  • 杭州公司网站设计云商网络综合服务
  • 苏州网站建设模版为进一步加强校园网站建设
  • 住房和城乡建设厅官方网站做网站用到的软件
  • 在线电子商务网站开发企业网站改版
  • 电商网站设计工作内容长春市工程咨询有限公司
  • 安陆网站制作公司河北康城建设集团网站
  • 台州房产网站建设建设银行培训网站
  • 网站弹窗在中间位置wordpress 新页面打开空白
  • 夫妻网站开发注册网站免费注册ins
  • 做网站销售好累建自己的o2o网站要多少钱
  • 甘肃 网站建设 开发 app最新商城系统
  • 软件开发网站有哪些问题人才市场招聘网站
  • 网站域名解析ip查询wordpress 媒体目录
  • 电子商务网站建设与管理的学后感专业建网站 成都
  • 单站点网站培训机构倒闭
  • 提供网站建设运营公司资质软件开发属于什么专业
  • 沈阳网站设计定制网站建设人工智能培训公司
  • 手机网站模板图片网站建设架构选型
  • 有一个做名片的网站深圳做网站公司那家比较好
  • 网站做进一步优化商城建站报价方案
  • 云南手机网站开发wordpress二维码发布平台
  • 网站被黑 百度跳转网站认证怎么认证