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

妙趣网 通辽网站建设外贸网站哪家做的好

妙趣网 通辽网站建设,外贸网站哪家做的好,室内设计师证报名入口官网,网站 验证概念#xff1a; 命令模式是一种行为设计模式#xff0c;它将请求封装成一个对象#xff0c;从而允许您将不同的请求参数化、队列化#xff0c;并且能够在不同的时间点执行。通过引入命令对象#xff08;Command#xff09;来解耦发送者#xff08;Invoker#xff09;…概念 命令模式是一种行为设计模式它将请求封装成一个对象从而允许您将不同的请求参数化、队列化并且能够在不同的时间点执行。通过引入命令对象Command来解耦发送者Invoker和接收者Receiver使得发送者无需知道具体的接收者或操作细节。命令对象封装了一系列操作并提供了一个统一的方法如execute()以便调用这些操作。 特点 解耦性命令模式将发送者与接收者之间解耦使得它们可以独立演化。可扩展性可以方便地添加新的命令类和接收类而无需修改现有代码。可撤销/重做由于每个命令都包含了执行和撤销操作因此可以轻松地实现撤销、重做等功能。容易组合多个简单命令可以组合成复杂命令在需要时进行灵活组合。 优点 降低系统的耦合度。发送者与接收者之间不存在直接关联关系。更好地支持撤销、重做等功能。每个具体命令断言了相关操作及其撤销操作。更好地支持日志和事务。可以记录命令的执行过程以及在需要时进行回滚。 缺点 可能会导致类爆炸。每个具体命令都需要一个对应的接收者类。命令模式增加了系统的复杂性因为它引入了额外的抽象层次。 适用场景 需要将请求参数化、队列滑并希望能够在不同时间执行。需要支持撤销、重做等功能。需要实现日志记录、事务管理等功能。 实现方式 定义一个抽象命令Command接口或抽象类其中包含一个execute()方法用于执行命令。创建具体命令类实现抽象命令接口或继承抽象命令类并在其中编写具体操作逻辑及其撤销逻辑。定义接收者Receiver类该类包含真正执行操作的方法。创建调用者Invoker对象在其中维护一系列命令对象并通过调用execute()方法来触发相应的操作。 实现代码 import java.util.ArrayList; import java.util.List;// 抽象命令接口 interface Command {void execute(); }// 具体命令类1 class ConcreteCommand1 implements Command {private Receiver receiver;public ConcreteCommand1(Receiver receiver) {this.receiver receiver;}Overridepublic void execute() {receiver.action1();} }// 具体命令类2 class ConcreteCommand2 implements Command {private Receiver receiver;public ConcreteCommand2(Receiver receiver) {this.receiver receiver;}Overridepublic void execute() {receiver.action2();} }// 接收者类 class Receiver {public void action1() {System.out.println(执行操作1);}public void action2() {System.out.println(执行操作2);} }// 调用者类/发送者类/Invoker类 class Invoker {private ListCommand commands new ArrayList();// 添加命令到队列中public void addCommand(Command command) {commands.add(command);}// 执行所有的命令public void executeCommands() {for (Command command : commands) {command.execute();}commands.clear(); // 清空已执行的命令列表可选操作。} }public class Main {public static void main(String[] args) {// 创建接收者对象Receiver receiver new Receiver();// 创建具体命令对象并指定接收者Command command1 new ConcreteCommand1(receiver);Command command2 new ConcreteCommand2(receiver);// 创建调用者对象并添加命令到队列中Invoker invoker new Invoker();invoker.addCommand(command1);invoker.addCommand(command2);// 执行所有命令invoker.executeCommands();}}在上述代码中我们定义了一个抽象的Command接口其中包含了一个execute()方法。然后创建了两个具体的命令类ConcreteCommand1和ConcreteCommand2它们实现了Command接口并重写了execute()方法。这些具体的命令类将调用接收者类中的不同操作。 在接收者类中我们定义了两个操作action1()和action2()。 最后我们创建了一个调用者类/发送者类/Invoker类。它维护一个命令队列并提供添加命令和执行所有命令的方法。当调用执行所有命令的方法时它会依次执行每个命令。 通过使用命令模式可以将请求发送方与接收方解耦并且可以轻松地添加新的具体命令而无需修改现有代码。此外由于每个具体的命令都是独立封装的对象因此可以轻松地进行参数化配置和传递。
http://www.w-s-a.com/news/845318/

相关文章:

  • 天津公司网站建设公司哪家好网站建设评估
  • 猪八戒网网站建设wordpress建网 打不开
  • 廊坊网站排名优化报价自学网站建设和seo
  • 摄影网站开发背景vs2012做网站
  • 网站建设空间使用标准沈阳网站建设招标公司
  • 网站流量怎么做的成都山而网站建设公司
  • 天河区网站建设公司爱站网排名
  • 怎样开发设计网站建设博物馆网页设计案例
  • 山西建设厅网站查不了seo搜索引擎优化包邮
  • 临沂网站建设价格太原网站优化公司
  • 网页设计基础课程设计搜索引擎优化英文
  • 网站备案号怎么查楼书设计素材网站
  • 网站设计机构有哪些中国建设银行网站登录不上
  • 烟台理工学校网站罗湖建设网站
  • 卑鄙的网站开发公司郑州人才网站
  • 成都专业的网站设计公司文化建设的成就
  • 做书籍封皮的网站如何建网站教程视频
  • 唐山建站公司模板ipfs做网站
  • 贵阳做网站品牌网站模板
  • 紫网站建设我的个人博客
  • 优秀网站菜单网页上的视频怎么下载
  • 龙口建网站公司价格国内的平面设计网站
  • 电子商务网站建设与管理读后感上海市基础工程公司
  • 织梦免费企业网站做网站时,404网页如何指向
  • 摄影工作室网站源码百度为什么会k网站
  • 哪个网站有淘宝做图的素材网站分享做描点链接
  • 做哪个网站零售最好网站空间在哪里
  • 荆州网站建设多少钱南阳做网站推广
  • 网站代理打开个人网站设计源码
  • 做php网站的话要学什么语言wordpress搜索不到