首页 第9章_命令模式

第9章_命令模式

举报
开通vip

第9章_命令模式模式设计(JAVA)商学院信管专业教研室韩娜电话:661905办公室:HG406命令模式2018-7-42命令模式(别名:动作,事务)将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。CommandPattern(AnotherName:Action,Transaction)Encapsulatearequestasanobject,therebylettingyouparameterizeclientswithdifferentrequests,qu...

第9章_命令模式
模式设计(JAVA)商学院信管专业教研室韩娜电话:661905办公室:HG406命令模式2018-7-42命令模式(别名:动作,事务)将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。CommandPattern(AnotherName:Action,Transaction)Encapsulatearequestasanobject,therebylettingyouparameterizeclientswithdifferentrequests,queueorlogrequests,andsupportundoableoperations.一、概述2018-7-43在许多设计中,经常涉及到一个对象请求另一个对象调用其方法到达某种目的。如果请求者不希望或无法直接和被请求者打交道,即不希望或无法含有被请求者的引用,那么就可以使用命令模式。实例在军队作战中,指挥官请求三连偷袭敌人,但是指挥官不希望或无法直接与三连取得联系,那么可以将该请求:“三连偷袭敌人”形成一个“作战命令”。只要能让该作战命令被执行,就会实现三连偷袭敌人的目的。二、命令模式的结构与使用2018-7-45模式的结构中包括四种角色:接收者(Receiver)命令(Command)接口具体命令(ConcreteCommand)请求者(Invoker)2018-7-46模式的UML类图2018-7-47模式的结构的描述与使用1.接收者(Receiver):CompanyArmy.javapublicclassCompanyArmy{publicvoidsneakAttack(){System.out.println("我们知道如何偷袭敌人,保证完成任务");}}2018-7-48模式的结构的描述与使用2.命令(Command)接口:Command.javapublicinterfaceCommand{publicabstractvoidexecute();}2018-7-49模式的结构的描述与使用3.具体命令(ConcreteCommand)ConcreteCommand.javapublicclassConcreteCommandimplementsCommand{CompanyArmyarmy;//含有接收者的引用ConcreteCommand(CompanyArmyarmy){this.army=army;}publicvoidexecute(){//封装着指挥官的请求army.sneakAttack();//偷袭敌人}}2018-7-410模式的结构的描述与使用4.请求者(Invoker)ArmySuperior.javapublicclassArmySuperior{Commandcommand;//用来存放具体命令的引用publicvoidsetCommand(Commandcommand){this.command=command;}publicvoidstartExecuteCommand(){//让具体命令执行execute()方法command.execute();}}2018-7-411模式的结构的描述与使用5.应用Application.javapublicclassApplication{publicstaticvoidmain(Stringargs[]){CompanyArmy三连=newCompanyArmy();Commandcommand=newConcreteCommand(三连);ArmySuperior指挥官=newArmySuperior();指挥官.setCommand(command);指挥官.startExecuteCommand();}}三、命令模式的优点2018-7-412在命令模式中,请求者(Invoker)不直接与接收者(Receiver)交互,即请求者(Invoker)不包含接收者(Receiver)的引用,因此彻底消除了彼此之间的耦合。命令模式满足“开-闭原则”。如果增加新的具体命令和该命令的接受者,不必修改调用者的代码,调用者就可以使用新的命令对象;反之,如果增加新的调用者,不必修改现有的具体命令和接受者,新增加的调用者就可以使用已有的具体命令。四、应用举例模拟带控制开关的小电器。该电器上有四个开关,两个一组,其中一组负责打开、关闭小电器上的照明灯,另一组负责打开、关闭小电器上的摄像头。
本文档为【第9章_命令模式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
8888
暂无简介~
格式:ppt
大小:988KB
软件:PowerPoint
页数:0
分类:
上传时间:2018-06-26
浏览量:13