欢迎来到天天文库
浏览记录
ID:49415200
大小:6.07 MB
页数:75页
时间:2020-02-06
《软件设计模式ch6 - 命令模式.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、软件设计方法及设计模式张聚礼副教授/系统分析师命令模式6一二三四五六遥控器对象村餐厅定义命令模式实现遥控器使用宏命令命令模式的更多用途主要内容一、遥控器巴斯特家电自动化公司遥控器(一)(二)厂商类(三)(一)巴斯特家电自动化公司需要一个创新遥控器,提供有关原型类。(二)遥控器(三)厂商类(三)厂商类二、对象村餐厅餐厅的交互餐厅的角色和职责(一)(二)从餐厅到命令模式(三)(一)餐厅的交互(一)餐厅的交互(二)餐厅的角色和职责(二)餐厅的角色和职责(二)餐厅的角色和职责(三)从餐厅到命令模式(三)从餐厅到命令模
2、式客户创建一个命令对象客户利用setCommand()将命令对象储存在调用者中客户要求调用者执行命令三、定义命令模式第一个命令对象(一)使用命令对象(二)遥控器的简单测试(三)定义(四)类图(五)(一)第一个命令对象实现命令接口(一)第一个命令对象实现打开电灯的命令(二)使用命令对象(三)遥控器的简单测试(三)遥控器的简单测试RUN(三)遥控器的简单测试(四)定义命令(Command)模式:将“请求”封装成对象,以便使用请求、队列或日志来参数化其它对象。命令模式也支持可撤销的操作。(四)定义(五)类图四、实现
3、遥控器指定命令实现遥控器(一)(二)测试遥控器(三)写文档使用状态实现撤销(四)(五)(一)指定命令(二)实现遥控器实现遥控器(二)实现遥控器实现遥控器(续)(二)实现遥控器实现遥控器(续)(二)实现遥控器实现命令(二)实现遥控器实现命令(续)测试遥控器(三)测试遥控器测试遥控器(续)(三)测试遥控器测试遥控器(续)(三)测试遥控器测试遥控器(续)(三)测试遥控器空对象(三)测试遥控器(四)写文档当命令支持撤销时(五)使用状态实现撤销从LightOnCommand着手(五)使用状态实现撤销(续)现在,来处理L
4、ightOffCommand(五)使用状态实现撤销要支持撤销,需要修改遥控器类(五)使用状态实现撤销(续)(五)使用状态实现撤销测试(五)使用状态实现撤销RUN(五)使用状态实现撤销通常,实现撤销,需要记录状态(五)使用状态实现撤销CeilingFan(五)使用状态实现撤销CeilingFan(续)(五)使用状态实现撤销CeilingFan命令(五)使用状态实现撤销CeilingFan命令(续)(五)使用状态实现撤销准备测试(五)使用状态实现撤销准备测试(续)(五)使用状态实现撤销RUN(五)使用状态实现撤销
5、五、使用宏命令每个遥控器都需要Party模式使用宏命令(一)(二)当遥控器控制不同的设备呢?(一)每个遥控器都需要Party模式(一)每个遥控器都需要Party模式当遥控器控制不同的设备呢?(一)每个遥控器都需要Party模式(二)使用宏命令创建宏命令集合(二)使用宏命令(二)使用宏命令创建两个数组(二)使用宏命令指定宏命令到按钮(二)使用宏命令最后,测试(二)使用宏命令RUN六、命令模式的更多用途队列请求日志请求(一)(二)(一)队列请求(二)日志请求七、总结AbstractionEncapsulation
6、PolymorphismInheritanceEncapsulatewhatvaries.Favorcompositionoverinheritence.Programtointerfaces,notimplementations.Strategy-definesafamilyofalgorithms,encapsulateseachone,andmakestheminterchangeable.Strategyletsthealgorithmvaryindependentlyfromclientsthatu
7、seit.总结OOBasicsOOPrinciplesOOPatterns1Observer-definesaone-to-manydependencybetweenobjectssothatwhenoneobjectchangesstate,allitsdependentsarenotifiedandupdatedautomatically总结OOPatternsStriveforlooselycoupleddesignsbetweenobjectsthatinteract.OOPrinciples2Dec
8、orator-Attachadditionalresponsibilitiestoanobjectdynamically.Decoratorsprovideaflexiblealternativetosubclassingforextendingfunctionality.总结OOPatternsClassesshouldbeopenforextensionbutclosedformodificat
此文档下载收益归作者所有