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

网站维护合同范本老域名网站不收录

网站维护合同范本,老域名网站不收录,icp备案号什么意思,网络营销策略和方法目录 前言 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/617523/

相关文章:

  • 外贸网站响应式如何用wordpress制作网站
  • seo网站优化代码台州外包加工网
  • 西安高新区网站制作温州网站制作要多少钱
  • 江苏网站推广公司仿视频网站开发
  • 做ppt的网站有哪些内容东莞大岭山房价
  • 网站栏目策划个人备案网站内不能出现什么内容
  • 淘宝现在不能发布网站建设黄山做网站公司
  • 鸿顺里网站建设公司有服务器域名源码怎么做网站平台
  • 整站优化全网营销磁力链最好用的搜索引擎
  • 网站做三层结构北京seowyhseo
  • 网站宽度一般是多少移动端网站设计规范
  • 东莞微信网站建设推荐wordpress实现首页功能能
  • 成品网站灬1688紧固件做网站有效果吗
  • 网站接单推广培训
  • 怎样做网站模板做哪种网站比较简单
  • wordpress网站能APP吗wecenter整合Wordpress
  • 营业推广方案aso优化排名推广
  • 写作网站哪个好用深圳市场调研公司
  • 东莞网站建设服务公司上海公司做网站的价格
  • app开发网站建设培训班网站域名备案 更改吗
  • 做网站首页的图片怎么缩小百度免费网站申请注册
  • 什么网站容易收录广州最好的网站建设公司
  • 直接通过ip访问网站按营销型网站要求重做网站 费用
  • 网站打开慢做门图网站
  • wordpress主题发布站源码超便宜的网站
  • 常州个人网站设计如何建设网页游戏网站
  • 网站制作需要的材料扬州工程信息网
  • 长沙米拓建站建立app
  • 建设学校网站前的需求分析中山制作企业网站
  • 企业网站seo诊断开发公司审计稽查的内容