欢迎来到天天文库
浏览记录
ID:56772073
大小:55.00 KB
页数:5页
时间:2020-07-08
《实验报告2_装饰者模式.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、云南大学软件学院实验报告序号:姓名:杨林燕学号:20111120106专业:软件工程日期:成绩:实验二装饰者模式的运用一、实验目的:装饰者模式动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。在熟悉装饰者模式相关理论知识的基础上,使用装设者模式实现米线店结账小程序。二、实验要求:使用装饰者模式实现米线店结账程序,要求如下:1.米线有三种,干浆、酸浆和水米线。2.配料有三种,豆腐、鸡蛋、牛肉,今后还会更多。3.客户可疑随心所欲的要各种米线搭配各种配料,配料可以加同一种加多份,或者不同种加多份。1、设计并绘制该程序的类图;2、依照设计的类图使用Java语言编写
2、代码,并实现该程序;3、除了核心的模式相关类实现外,提供测试环境,按照难度高低,分别是:a)控制台程序,Client硬编码初始化模式和测试环境,运行结果文本输出;b)控制台程序,Client初始化测试环境,并根据用户输入运算,运行结果文本输出;c)设计并实现用户UI,Client初始化测试环境,并根据用户在UI控件上的输入运算,运行结果文本输出;三、实验内容:1.类图NiuRouMiXianmiXiangetDescription()cost()JiDanMiXianmiXiangetDescription()cost()DouFuMiXianmiXiangetDescription
3、()cost()CondimentDecoratorgetDescription()MiXianDescriptiongetDescription()cost()GanJiangCost()SuanJiangCost()ShuiJiangCost()2.代码MiXian类:packageynu.lab2;publicabstractclassMiXian{Stringdescription;publicStringgetDescription(){returndescription;}publicabstractdoublecost();}CondimentDecorator类:pu
4、blicabstractclassCondimentDecoratorextendsMiXian{publicabstractStringgetDescription();}GanJiang类:publicclassGanJiangextendsMiXian{publicGanJiang(){description="干浆米线";}publicdoublecost(){return.20;}}SuanJiang类:publicclassSuanJiangextendsMiXian{publicSuanJiang(){description="酸浆米线";}publicdoubleco
5、st(){return.25;}}ShuiJiang类:publicclassShuiJiangextendsMiXian{publicShuiJiang(){description="水浆米线";}publicdoublecost(){return.15;}}DouFu类:publicclassDouFuextendsCondimentDecorator{MiXianmiXian;publicDouFu(MiXianmiXian){this.miXian=miXian;}publicStringgetDescription(){returnmiXian.getDescription
6、()+",+豆腐";}publicdoublecost(){return.05+miXian.cost();}NiuRou类:publicclassNiuRouextendsCondimentDecorator{MiXianmiXian;publicNiuRou(MiXianmiXian){this.miXian=miXian;}publicStringgetDescription(){returnmiXian.getDescription()+",+牛肉";}publicdoublecost(){return.15+miXian.cost();}}JiDan类:publicclas
7、sJiDanextendsCondimentDecorator{MiXianmiXian;publicJiDan(MiXianmiXian){this.miXian=miXian;}publicStringgetDescription(){returnmiXian.getDescription()+",+鸡蛋";}publicdoublecost(){return.10+miXian.cost();}YanShi类:publicclassYanShi{pu
此文档下载收益归作者所有