实验报告2 装饰者模式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

云南大学软件学院

实验报告

成绩:日期:106专业:软件工程序号:姓名:杨林燕学号:

装饰者模式的运用实验二

一、实验目的:装饰者模式动态地将责任附加到对象上,若要扩展功能,

装饰者提供了比继承更有弹

性的替代方案。在熟悉装饰者模式相关理论知识的基础上,使用装设者模式实现米线店结账小程序。二、实验要求:使用装饰者模式实现米线店结账程

序,要求如下:米线有三种,干浆、酸浆和水米线。1.

配料有三种,豆腐、鸡蛋、牛肉,今后还会更多。2.

或者不客户可疑随心所欲的要各种米线搭配各种配料,配料可以加同一种加多份,3.同种加多份。

设计并绘制该程序的类图;1、

语言编写代码,并实现该程序;照设计的类图使用依Java2、了核心的模式相关类实现外,提供测试环境,按照难度高低,分别是:、除3硬编码初始化模式和测试环境,运行结果文本输出;控制台程序,Clienta)

Client初始化测试环境,并根据用户输入运算,运行结果文本输出;b)控制台程序,控件上的输入运算,UI,Client初始化测试环境,并根据用户在设计并实现用户c)UI 运行结果文本输出;

三、实验内容:1.类图

2.代码MiXian类:package ;

public abstract class MiXian {

String description;

String getDescription() { public return description; } abstractpublic cost(); double}

类:CondimentDecorator

public abstract class CondimentDecorator extends MiXian {

public abstract String getDescription();

}GanJiang类:

public class GanJiang extends MiXian {

public GanJiang() {

description = 干浆米线 ;

}

public double cost() {return .20; }}SuanJiang类:

public class SuanJiang extends MiXian {

public SuanJiang() {

description = 酸浆米线;

}

double cost() {public

.25; return

}}ShuiJiang类:

public class ShuiJiang extends MiXian {

public ShuiJiang() {

description = 水浆米线;

}

double cost() {public

.15; return }}DouFu类:

public class DouFu extends CondimentDecorator {

;miXian MiXian

DouFu(MiXian miXian) {public

= miXian;

}

public String getDescription() {

return () + ,+豆腐;

}

cost() {public double .05 + (); return }NiuRou类:

public class NiuRou extends CondimentDecorator {

MiXian miXian;

public NiuRou(MiXian miXian) {

= miXian;

}

public String getDescription() {; () + return,+牛肉 }

double cost() {public .15 + ();return

}}JiDan类:

public class JiDan extends CondimentDecorator {

;miXian MiXian

JiDan(MiXian miXian) { public = miXian;

}

public String getDescription() {;鸡蛋,+ () + return}

public cost() { double .10 + ();return}

YanShi类:

public class YanShi {

public static void main(String args[]) {

MiXian suan = new SuanJiang();

+ ¥ + ());

new MiXian miXian2 = GanJiang();new miXian2 = JiDan(miXian2);new miXian2 =

NiuRou(miXian2);new miXian2 = DouFu(miXian2);

+ ()); ?尤 +

MiXian miXian3 = new ShuiJiang();new miXian3 = JiDan(miXian3);

miXian3 = new NiuRou(miXian3);new miXian3 = DouFu(miXian3);

+ + ());?尤

}}4.测试结果

四、实验总结:

通过本次实验,加深了对装饰者模式意图,使用场景以及使用效果的理解,以动态、透明的方式给单个对象添加职责就增加功能来说,Decorator 模式比生成子类更为灵活;

相关文档
最新文档