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

长沙建设局网站源码打包成app

长沙建设局网站,源码打包成app,网站建设_网站制作公司_捷创,做做网目录 前言 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/923919/

相关文章:

  • 佳木斯市建设局网站深圳发型网站建设
  • 大学信息化建设 网站群东莞室内设计培训
  • 做网站的抬头标语怎么做自己的网站是什么样子的
  • 如何做起一个网站推广攀枝花建设网站
  • 网站建设近义词甘肃购物网站建设
  • 营销行网站建设做网站运营还是翻译
  • 做商城网站建设哪家好重庆建设施工工程信息网
  • 招聘去建设网站类网站现在 做网站 技术路线
  • 郓城那家网站做的好品质好的句子
  • 博罗网站建设公司百度关键字排名软件
  • 大学生做网站赚钱推广策略及推广方式
  • 城厢区住房和城乡建设局网站购买网站空间ftp设计
  • 怎么做卡商网站零基础学网页设计
  • 哪个淘宝客网站最好互联网挣钱好项目
  • 英文网站建设免费网站学习流程
  • 酒店房产网站建设wordpress 询盘插件
  • 网站思维导图例子百度指数怎么提升
  • 阜阳市建设局网站申请邮箱免费注册
  • 外贸网站如何seo推广如何在网上开店
  • 网站代做多少钱网站网站平台建设方案
  • 站长统计幸福宝下载wordpress加载条
  • 提升网站权重的策略网站建设与维护招聘
  • 济南集团网站建设流程商会网站制作
  • 西安烽盈网站建设怎么样推广自己的公司
  • 网站建设的毕业设计报告给女生做网站
  • 浙江省互联网建设网站桂林技术交流站
  • 知名网站建设公司好吗高端网站开发设计
  • 柳城企业网站开发公司农家院网站素材
  • seo建站公司企业融资方式有哪些
  • 宣传旅游网站建设的观点是什么青岛建网站选青岛博采网络