欢迎来到天天文库
浏览记录
ID:5887858
大小:250.33 KB
页数:25页
时间:2017-12-27
《中南大学软件体系结构实验6行为型设计模式实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《软件体系结构》实验报告项目名称行为型设计模式实验专业班级学号姓名实验成绩:批阅教师:年月日25实验6行为型设计模式实验实验学时:2每组人数:1实验类型:3(1:基础性2:综合性3:设计性4:研究性)实验要求:1(1:必修2:选修3:其它)实验类别:3(1:基础2:专业基础3:专业4:其它)一、实验目的熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的行为型设计模式,包括观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。二、实验内容1.某实时在线股票软件需要提供如下功能:当股票购买者
2、所购买的某支股票价格变化幅度达到5%时,系统将自动发送通知(包括新价格)给购买该股票的所有股民。试使用观察者模式设计并实现该系统,要求绘制相应的类图并编程模拟实现。2.某公司欲开发一套机房监控系统,如果机房达到某一指定温度,温度传感器(Thermosensor)将自动传递信号给各种响应设备,例如警示灯(CautionLight)将闪烁(flicker())、报警器(Annunciator)将发出警报(alarm())、安全逃生门(SecurityDoor)将自动开启(open())、隔热门(InsulatedDoor)将自动关闭(close())等,每
3、一种响应设备的行为由专门的程序来控制。为了将来能够方便地引入新类型的响应设备,采用观察者模式和适配器模式设计并模拟实现该系统。3.某软件公司为某电影院开发了一套影院售票系统,在该系统中需要为不同类型的用户提供不同的电影票(MovieTicket)打折(Discount)方式,具体打折方案如下:(1)学生凭学生证可享受票价8折优惠;(2)年龄在10周岁及以下的儿童可享受每张票减免10元的优惠(原始票价需大于等于20元);(3)影院VIP用户除享受票价半价优惠外还可进行积分,积分累计到一定额度可换取电影院赠送的奖品。该系统在将来可能还要根据需要引入新的打折
4、方式。试使用策略模式设计并编程模拟实现该影院售票系统。4.某软件公司欲开发一款飞机模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征,需要模拟的飞机种类及其特征如表1所示:25表1飞机种类及特征一览表飞机种类起飞特征飞行特征直升机(Helicopter)垂直起飞(VerticalTakeOff)亚音速飞行(SubSonicFly)客机(AirPlane)长距离起飞(LongDistanceTakeOff)亚音速飞行(SubSonicFly)歼击机(Fighter)长距离起飞(LongDistanceTakeOff)超音速飞行(SuperSonic
5、Fly)鹞式战斗机(Harrier)垂直起飞(VerticalTakeOff)超音速飞行(SuperSonicFly)为将来能够模拟更多种类的飞机,试采用策略模式设计并模拟实现该飞机模拟系统。三、实验要求1.结合实例,正确无误地绘制观察者模式和策略模式的模式结构图;2.使用任意一种面向对象编程语言实现观察者模式和策略模式实例,代码运行正确无误。四、实验步骤1.结合实例,使用PowerDesigner绘制观察者模式实例结构图并用面向对象编程语言实现该模式实例;2.结合实例,使用PowerDesigner绘制观察者模式实例结构图并用面向对象编程语言实现该模
6、式实例;3.结合实例,使用PowerDesigner绘制策略模式实例结构图并用面向对象编程语言实现该模式实例;4.结合实例,使用PowerDesigner绘制策略模式实例结构图并用面向对象编程语言实现该模式实例。五、实验结果1.类图:25实现代码:publicclassClient{publicstaticvoidmain(Stringargs[]){SharesSubjectshare1=newConcreteShares(100);Investerobserver1=newInvester("张三");Investerobserver2=newIn
7、vester("李四");share1.addInvester(observer1);share1.addInvester(observer2);share1.change();}}/************************************************************************Module:ConcreteShares.java*Author:ct*Purpose:DefinestheClassConcreteShares*****************************************
8、******************************/importjava.util.
此文档下载收益归作者所有