设计模式实验三概要.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CENTRAL SOUTH UNIVERSITY 《软件体系结构》实验报告 实验名称 设计模式实验二 学生姓名 http://flydream5201314.qz on 学生学号 XXX 专业班级 软件工程1007班 指导教师 刘伟 完成时间 2012年12月25日 实验三 设计模式实验二 一、实验目的 熟练使用 PowerDesigner 和任意一种面向对象编程语言实现几种常见的设计模式,包括 外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、策略模式和模板 方法模式, 理解每一种设计模式的模式动机, 掌握模式结构, 学习如何使用代码实现这些模 式,并学会分析这些模式的使用效果。 二、实验内容 使用 PowerDesigner 和任意一种面向对象编程语言实现外观模式、代理模式、职责链模 式、命令模式、迭代器模式、观察者模式、策略模式和模板方法模式,包括根据实例绘制模 式结构图、编写模式实例实现代码,运行并测试模式实例代码。 (1) 外观模式 某软件公司为新开发的智能手机控制与管理软件提供了一键备份功能, 通过该功能可以 将原本存储在手机中的通信录、 短信、照片、歌曲等资料一次性全部拷贝到移动存储介质 (例 如 MMC 卡或 SD 卡)中。在实现过程中需要与多个已有的类进行交互, 例如通讯录管理类、 短信管理类等, 为了降低系统的耦合度, 试使用外观模式来设计并编程模拟实现该一键备份 功能。 (2) 代理模式 在某应用软件中需要记录业务方法的调用日志, 在不修改现有业务类的基础上为每一个 类提供一个日志记录代理类, 在代理类中输出日志,如在业务方法 method()调用之前输出“方 法method()被调用,调用时间为2010-10-10 10:10:10 ”调用之后如果没有抛异常则输出 “方 法method()成功调用”,否则输出“方法 method()调用失败”。在代理类中调用真实业务类的 业务方法,使用代理模式设计该日志记录功能的结构,绘制类图并编程模拟实现。 (3) 职责链模式 某企业的SCM(Supply Chain Management,供应链管理)系统中包含一个采购审批子系 统。该企业的采购审批是分级进行的, 即根据采购金额的不同由不同层次的主管人员来审批, 主任可以审批 5 万元以下(不包括 5万元)的采购单,副董事长可以审批 5万元至 10万元 (不包括 10 万元)的采购单,董事长可以审批 10 万元至 50 万元(不包括 50 万元) 的采购 单, 50 万元及以上的采购单就需要开董事会讨论决定。试使用职责链模式设计并实现该系 统。 (4) 命令模式 某软件公司欲开发一个基于 Windows 平台的公告板系统。 系统提供一个主菜单 (Menu), 在主菜单中包含了一些菜单项 (MenuItem) ,可以通过 Menu 类的 addMenuItem() 方法增加菜 单项。菜单项的主要方法是 click() ,每一个菜单项包含一个抽象命令类,具体命令类包括 OpenCommand (打开命令),CreateCommand (新建命令),EditCommand (编辑命令)等, 命令类具有一个 execute。方法,用于调用公告板系统界面类 (BoardScreen)的open()、create。、 edit()等方法。试使用命令模式设计该系统,使得 Menultem类与BoardScreen类的耦合度降 低,绘制类图并编程模拟实现。 迭代器模式 在某在线购物系统的购物车 (Shopping Cart)中包含了一个存储商品名称的字符串数组, 现需要自定义一个双向迭代器 (Mylterator)实现对该商品名称数组的双向 (前向和后向)遍历。 绘制类图并编程模拟实现(要求定义抽象层) 。 观察者模式 某在线股票软件需要提供如下功能: 当股票购买者所购买的某支股票价格变化幅度达到 5%时,系统将自动发送通知(包括新价格)给购买该股票的股民。现使用观察者模式设计 该系统,绘制类图并编程模拟实现(要求定义抽象层) 。 策略模式 某软件公司欲开发一款飞机模拟系统, 该系统主要模拟不同种类飞机的飞行特征与起飞 特征,需要模拟的飞机种类及其特征如表 1所示: 表1飞机种类及特征一览表 飞机种类 起飞特征 飞行特征 直升机(Helicopter) 垂直起飞(VerticalTakeOff) 亚音速飞行(SubSonicFly) 客机(AirPlane) 长距离起飞(LongDistanceTakeOff) 亚音速飞行(SubSonicFly) 歼击机(Fighter) 长距离起飞(LongDistanceTakeOff) 超音速飞行(SuperSonicFly) 鹞式战斗机(Harrier) 垂直起

文档评论(0)

381697660 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档