欢迎来到天天文库
浏览记录
ID:22286648
大小:57.98 KB
页数:6页
时间:2018-10-28
《实验一命令(command)模式》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验报告课程名称java设计模式实验项目命令(Command)模式的应用实验仪器PC个人终端系别计算机学院专业软件工程班级/学号软工1302/2013011342学生姓名阮羽中实验日期2015-10-12成绩指导教师张志华实验一命令(Command)模式的应用一、实验目的通过该实验,理解命令(Command)模式的意图、结构,在软件开发中使用该模式并进行功能验证。实验内容1.2.3.假设电视机有三个操作:开机(open)、关机(close)和换台(changechannel),可以将其看作是命令。电视机的遥控器相当于请求荠(Inv
2、oker)的角色,电视机本身是命令的接收者。请使用Java语言设计一个模拟系统。经理办公室的灯泡坏了,请使用命令模式换一个电灯泡。诸葛亮在临死前授予杨仪一个锦囊,密嘱曰:“我死,魏延必反,……那时自有斩魏延之人也。”同时授马岱以密计,只待魏延喊叫时,便出其不意斩之。杨仪读罢锦囊计策,己知伏下马岱在彼,故依计而行,果然杀了魏延。后人有诗曰.•“诸葛先机识魏延,已知日后反西川。锦囊遗计人难料,却见成功在马前”。使用Java语言设计一个模拟系统,设计过程要求使用命令模式。三、实验步骤与要求1.对于以上题0要认真分析和理解题意,任选1个题
3、B编程,程序中要求使用命令模式。2.上机录入,使用JDK编译器调试、运行、验证程序。3.请指导教师审查程序和运行结果并评定成绩;4.撰写并上交实验报告。四、实验原理:一个对象请求另一个对象调用其方法到达某种目的。如果请求者不希望或无法直接和被请求者打交道,即不希望或无法含有被请求者的引用,那么就可以使用命令模式。命令模式意图:“将一个请求封装为一个对象,可用不同的请求对客户进行参数化;对请求排队或记录请求円志,以及支持可取消的操作。”命令模式彻底消除了请求者(Invoker)和接收者(Receiver)之间的稱合,并且满足满足“开
4、-闭原则”命令模式UML图:CHontInvokorCommando——>*Execute()ReceiverreceiverConcrotoCommand•state+Action()L_■♦ExecuteOreceiverAclion()五、上机报告内容1、班级、学号、姓名、实验完成日期;2、实验题目;3、设计方案:给出你的设计方案,包括结构类图及相关说明;4、源代码:设计方案中各个类和接口的源代码,包括测试主类的源代码.5、测试数据及运行结果6、总结:1)运用设计模式总结:对所运用的设计模式的名称,分类,意图,结构,角色作用
5、的总结,所运用的面向对象设计原则。2)选择一个题目进行说明:如果不使用命令模式,你能想到其他方法解决问题吗,简要描述你的方案,并和采用命令模式的方案做简单比较。3)本次实验遇到的问题、如何解决的;本次实验的经验、体会、改进设想等。六、实验成绩考核方法实验成绩由出勤、实验完成情况以及实验报告综合评定。考核成绩比例分配:出勤占15%、实验完成情况占50%、实验报告占35%七、上机安排本实验共需2个学时。命令模式Command.javapublicinterfaceCommand{publicabstractvoidexecute();
6、}TVChange.javapublicclassTVChangeimplementsCommand{publicvoidexecute(){System.out.printIn('"Thechannelhasbeenchanged!}TVClose.javapublicclassTVCloseimplementsCommand{publicvoidexecute(){System•out.printIn('"TVhasbeenclosed!}}TVOpen.javapublicclassTVOpenimplementsComma
7、nd{publicvoidexecute(){System.out.printIn(HTVhasbeenopened!WatcherpublicclassWatcher{Commandcommand;publicvoidsetCommand(Commandcommand)!this.command=command;}publicvoidstartExecuteCommand(){command.execute();}}Application.java(测试类)publicclassApplication{publicstaticv
8、oidmain(Stringargs[]){Commandcommandl=newTVOpen();Commandcommand2=newTVClose();Commandcommand3=newTVChange();Watcherwatcher=
此文档下载收益归作者所有