欢迎来到天天文库
浏览记录
ID:22004372
大小:112.50 KB
页数:5页
时间:2018-10-26
《命令模式案例实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、获件试钟与怵系結拘课程名称软件设计与体系结构课程编号0920116实验项目名称命令模式案例学号班级姓名专业学生所在学院指导教师实验室名称地点实验时间实验目的:命令模式(ObserverPattern)足设计模式屮行为模式的一种,它解决了上述具有一对多依赖关系的对象的重用问题。此模式的参与者分为两大类,一类是被观察的目标,另一类是观察该目标的观察者们。正因为该模式是基于“一对多”的关系,所以该模式一般是应用于由一个目标对象和N个观察者对象组成(当然也可以扩展为有多个目标对象,但我们现在只讨论前者)的场合。当H标对象的状态发生改变或做出某种行为时,正在观察该目标对象的观察
2、者们将自动地、连锁地作出相应的响应行为。通过本次实验了解观察者模式的原理。并能够运用观察者模式来进行编程。实验内容1UML类图命令模式-烧烤店-松耦合设计:2程序的源代码命令模式-烧烤店-松耦合设计:packageBake;publicclassBakeChickenWingCommandextendsCommand{publicBakeChickenWingCommand(Barbecuerreceiver){super(receiver);//TODOAuto-generatedconstructorstub)@OverridepublicvoidExecuteC
3、ommand(){//TODOAuto-generatedmethodstubreceiver.BakeChickenWingO;}}packageBake;publicclassBakeMuttonCommandextendsCommand{publicBakeMuttonCommand(Barbecuerreceiver){super(receiver);//TODOAuto-generatedconstructorstub}@OverridepublicvoidExecuteCommand(){//TODOAuto-generatedmethodstubrece
4、iver.BakeMutton();})packageBake;publicclassBarbecuer{publicvoidBakeMutton(){System.out.println("烤羊肉串");}publicvoidBakeChickenWingO{System.out.println(n烤鸡翅”);})packageBake;publicabstractclassCommand{protectedBarbecuerreceiver;publicCommand(Barbecuerreceiver){super();this.receiver=receive
5、r;)abstractpublicvoidExecuteCommand();}packageBake;importjava.util.ArrayList;importjava.util.List;importjava.util.Listlterator;publicclassWaiter{privateLi$torders;publicWaiter。{super();orders=newArrayList();)publicvoidSetOrder(Commandcommand){if(command.toString().subs
6、tring(0,14).equals("Bake.BakeChick”)){System.out.println("鸡翅没有了,请点别的烧烤。”);}//elseif(command.toString().substring(0,14).equals(’’Bake.BakeMutto”)){//System.out.println(nThemuttonhavebeensoldout,pleasetrysomethingelse’’//}else{orders.add(command);System.out.println(n点餐:u+command.toString(
7、).substring(5,15));}}publicvoidCancelOrder(Commandcommand){orders.remove(command);System.out.println(’•取消点餐:’’+command.toString().substring(0,15));}publicvoidNotify(){ListIteratori=orders.listlterator();while(i.hasNext()){i.next().ExecuteCommand();}}}packageBake;public
此文档下载收益归作者所有