第一范文网 - 专业文章范例文档资料分享平台

设计模式-软件体系结构-实验6-中南大学-软件学院

来源:用户分享 时间:2025/5/18 12:20:51 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

精品文档 你我共享

《软件体系结构》 实验报告 项目名称 行为型设计模式实验 专业班级 学 号 姓 名 实验成绩: 批阅教师: 年 月 日 AAAAAA

精品文档 你我共享

实验6 行为型设计模式实验

实验学时: 2 每组人数: 1

实验类型: 3 (1:基础性 2:综合性 3:设计性 4:研究性) 实验要求: 1 (1:必修 2:选修 3:其它)

实验类别: 3 (1:基础 2:专业基础 3:专业 4:其它)

一、实验目的

熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的行为型设计模式,包括观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。

二、实验内容

1. 某实时在线股票软件需要提供如下功能:当股票购买者所购买的某支股票价格变化幅度达到5%时,系统将自动发送通知(包括新价格)给购买该股票的所有股民。试使用观察者模式设计并实现该系统,要求绘制相应的类图并编程模拟实现。

2. 某公司欲开发一套机房监控系统,如果机房达到某一指定温度,温度传感器(Thermosensor)将自动传递信号给各种响应设备,例如警示灯(CautionLight)将闪烁(flicker())、报警器(Annunciator)将发出警报(alarm())、安全逃生门(SecurityDoor)将自动开启(open())、隔热门(InsulatedDoor)将自动关闭(close())等,每一种响应设备的行为由专门的程序来控制。为了将来能够方便地引入新类型的响应设备,采用观察者模式和适配器模式设计并模拟实现该系统。

3. 某软件公司为某电影院开发了一套影院售票系统,在该系统中需要为不同类型的用户提供不同的电影票(MovieTicket)打折(Discount)方式,具体打折方案如下:

(1) 学生凭学生证可享受票价8折优惠;

(2) 年龄在10周岁及以下的儿童可享受每张票减免10元的优惠(原始票价需大于等于20元);

(3) 影院VIP用户除享受票价半价优惠外还可进行积分,积分累计到一定额度可换取电影院赠送的奖品。

该系统在将来可能还要根据需要引入新的打折方式。

试使用策略模式设计并编程模拟实现该影院售票系统。

4. 某软件公司欲开发一款飞机模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征,需要模拟的飞机种类及其特征如表1所示:

AAAAAA

精品文档 你我共享

表1 飞机种类及特征一览表

飞机种类 起飞特征 飞行特征 直升机(Helicopter) 客机(AirPlane) 歼击机(Fighter) 鹞式战斗机(Harrier)

垂直起飞(VerticalTakeOff) 长距离起飞(LongDistanceTakeOff) 垂直起飞(VerticalTakeOff) 亚音速飞行(SubSonicFly) 亚音速飞行(SubSonicFly) 超音速飞行(SuperSonicFly) 长距离起飞(LongDistanceTakeOff) 超音速飞行(SuperSonicFly) 为将来能够模拟更多种类的飞机,试采用策略模式设计并模拟实现该飞机模拟系统。

三、实验要求

1. 结合实例,正确无误地绘制观察者模式和策略模式的模式结构图;

2. 使用任意一种面向对象编程语言实现观察者模式和策略模式实例,代码运行正确无误。

四、实验步骤

1. 结合实例,使用PowerDesigner绘制观察者模式实例结构图并用面向对象编程语言实现该模式实例;

2. 结合实例,使用PowerDesigner绘制观察者模式实例结构图并用面向对象编程语言实现该模式实例;

3. 结合实例,使用PowerDesigner绘制策略模式实例结构图并用面向对象编程语言实现该模式实例;

4. 结合实例,使用PowerDesigner绘制策略模式实例结构图并用面向对象编程语言实现该模式实例。

五、实验结果

1. 类图:

StockSubject#+++{abstract} observerList: ArrayListattach (InvesterObserver observer): voiddetach (InvesterObserver observer): voidnotice (): void...InvesterObserver+update (): void...Stock+<>notice (): void...Invester+update (): void ... 实现代码:

AAAAAA

精品文档 你我共享

//代码颜色使用黑色,字体使用Times New Roman或Arial,字号为五号,如 abstract class Shape import util.XMLUtil; public class Client { public static void main(String[] args) { StockSubject subject = (StockSubject) XMLUtil.getBean(\); InvesterObserver observer = (InvesterObserver) XMLUtil.getBean(\); subject.attach(observer); subject.notice(); } } public class Invester implements InvesterObserver { @Override public void update() { System.out.println(\今年股票风云莫测,这都是命啊!\); } } public class Stock extends StockSubject { public void notice() { for (InvesterObserver invester : super.observerList) { invester.update(); } } } AAAAAA

设计模式-软件体系结构-实验6-中南大学-软件学院.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3zveb0d58v6b8ve00zsa83uyx9681900vd4_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top