欢迎来到天天文库
浏览记录
ID:41820525
大小:348.50 KB
页数:18页
时间:2019-09-02
《云南大学《设计模式》设计模式实验指导书》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、“设计模式”实验指导书刘俊咋、赵娜实验一策略模式的运用策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。在熟悉策略模式相关理论知识的基础上,使用策略模式实现一个小游戏。【基本要求】使用策略模式实现一个小游戏,要求如下:1・游戏中有三个角色:和尚,侠女,忍者;2.每个角色都有生命值和魔法值,但各角色不同。3.各角色外观不同。4.每个角色具有魔法攻击和物理攻击;5.物理攻击有三种:用刀、用剑、用手;6.魔法攻击也有三种:火系魔法、金系魔法、水系魔法;7.各角色可以动态更换物理、魔法攻击方式,也可以动态选择攻击方法。【实验内容】1、设计并绘
2、制该程序的类图;2、依照设计的类图使用Java语言编写代码,并实现该程序;3、除了核心的模式相关类实现外,提供测试环境,按照难度高低,分别是:a)控制台程序,Client硬编码初始化模式和测试环境,运行结果文本输出;b)控制台程序,Client初始化测试环境,并根据用户输入运算,运行结果文本输出;c)设计并实现用户Ul,Client初始化测试环境,并根据用户在UI控件上的输入运算,运行结果文本输出;【实现提示】1、策略模式的结构和组件strategy>Strategy:定义所有支持算法的公共接口,Context使用该接口调用某ConcreteStrategy定义的算法;>Concre
3、teStrategy:以Strategy接口实现某具体算法;>Context:用一个ConcreteStrategy对象來配置,维护一个对Strategy对■象的引用,可定义一个接口來让Strategy访问它的数据;2、策略模式代码提示SimUDuck范例:将duck的行为理解为法”來进行实现。“一组行为”,并使用策略模式的“--族算publicabstractclassDuck{FlyBehaviorflyBehavior;QuackBehaviorquackBehavior;publicDuck(){}publicvoidsetFlyBehavior(FlyBehaviorfb)
4、{flyBehavior=fb;}publicvoidsetQuaekBehavior(QuaekBehaviorqb){quackBehavior=qb;}abstractvoiddisplay();publicvoidperformFly(){flyBehavior.fly();}publicvoidperformQuack(){quackBehavior.quack();}publicvoidswim(){System.out•intln("Allducksfloaevendecoys!n);}}2、FlyBehavior和QuackBehaviorpublicinterfac
5、eQuackBehavior{publicvoidquack();}publicinterfaceFlyBehavior{publicvoidfly();}3、具体行为FlyWithWingspublicclassFlyWithWingsimplementsFlyBehavior{publicvoidfly(){System•out.printin(Tmflying!!”);4、测试环境MiniDuckSimulatorpublicclassMiniDuckSimulator{publicstaticvoidmain(String[]args){MallardDuckmallard=
6、newMallardDuck();RubberDuckDecoyDuckrubberDuckie=newRubberDuck();decoy=newDecoyDuck();ModelDuckmodel=newModelDuck();mallard•performQuack();rubberDuckie.performQuack();decoy•performQuack();model•performFly();model•setFlyBehavior(newFlyRocketPowered());model•performFly();}}实验二装饰者模式的运用装饰者模式动态地将责任附
7、加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。在熟悉装饰者模式相关理论知识的基础上,使用装设者模式实现米线店结账小程序。【基本要求】使用装饰者模式实现米线店结账程序,要求如下:1.米线有三种,干浆、酸浆和水米线。2.配料有三种,豆腐、鸡蛋、牛肉,今后还会更多。3.客户可疑随心所欲的要各种米线搭配各种配料,配料可以加同一种加多份,或者不同种加多份。【实验内容】1、设计并绘制该程序的类图;2、依照设计的类图使用Java语言编写代码,并实现该程
此文档下载收益归作者所有