云大设计模式实验3装饰着模式

云大设计模式实验3装饰着模式

ID:40586209

大小:291.00 KB

页数:15页

时间:2019-08-04

云大设计模式实验3装饰着模式_第1页
云大设计模式实验3装饰着模式_第2页
云大设计模式实验3装饰着模式_第3页
云大设计模式实验3装饰着模式_第4页
云大设计模式实验3装饰着模式_第5页
资源描述:

《云大设计模式实验3装饰着模式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、云南大学软件学院实验报告课程:设计模式实验学期:2010-2011学年第一学期任课教师:专业:学号:姓名:成绩:实验3装饰者模式1.题目:使用装饰着模式实现一个小吃店供应食物,然后计算费用并输出所点的食物和消费金额的程序,其中的被装饰者是粗米线、细米线、面条,装饰者是炸酱、焖肉、番茄鸡蛋以及酱油、醋、辣椒和葱花。2.模式设计的UML类图:3.程序源代码:(1)食品抽象类FoodStuff.java:publicabstractclassFoodStuff{Stringdescription="UnknownFoodStuff";publicStringg

2、etDescription(){returndescription;}publicabstractdoublecost();}(2)被装饰者的各个子类:publicclassThickRicenoodlesextendsFoodStuff{publicThickRicenoodles(){description="粗米线";}publicdoublecost(){return4.0;}}publicclassThinRicenoodlesextendsFoodStuff{publicThinRicenoodles(){description="细米线";

3、}publicdoublecost(){return3.0;}}publicclassNoodlesextendsFoodStuff{publicNoodles(){description="面条";}publicdoublecost(){return2.0;}}(3)调味品抽象类CondimentDecorator.java:publicabstractclassCondimentDecoratorextendsFoodStuff{publicabstractStringgetDescription();}(4)调料装饰者的各个子类:publiccla

4、ssFiredbeansauceextendsCondimentDecorator{FoodStufffoodstuff;publicFiredbeansauce(FoodStufffoodstuff){this.foodstuff=foodstuff;}publicStringgetDescription(){returnfoodstuff.getDescription()+",炸酱";}publicdoublecost(){return2.0+foodstuff.cost();}}publicclassDaubeextendsCondimentDec

5、orator{FoodStufffoodstuff;publicDaube(FoodStufffoodstuff){this.foodstuff=foodstuff;}publicStringgetDescription(){returnfoodstuff.getDescription()+",焖肉";}publicdoublecost(){return2.0+foodstuff.cost();}}publicclassTomatoAndEggextendsCondimentDecorator{FoodStufffoodstuff;publicTomat

6、oAndEgg(FoodStufffoodstuff){this.foodstuff=foodstuff;}publicStringgetDescription(){returnfoodstuff.getDescription()+",番茄鸡蛋";}publicdoublecost(){return2.0+foodstuff.cost();}}(5)佐料装饰者的各个子类:publicclassSoyextendsCondimentDecorator{FoodStufffoodstuff;publicSoy(FoodStufffoodstuff){this

7、.foodstuff=foodstuff;}publicStringgetDescription(){returnfoodstuff.getDescription()+",酱油";}publicdoublecost(){return0.0+foodstuff.cost();}}publicclassVinegarextendsCondimentDecorator{FoodStufffoodstuff;publicVinegar(FoodStufffoodstuff){this.foodstuff=foodstuff;}publicStringgetDes

8、cription(){returnfoodstuff.getDescriptio

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。