体系结构实验报告.doc_第1页
体系结构实验报告.doc_第2页
体系结构实验报告.doc_第3页
体系结构实验报告.doc_第4页
体系结构实验报告.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中南大学软件学院软件体系结构设计模式实验报告学生姓名: 宋昂 所在学院: 软件学院 学生学号: 3901080115 学生班级: 软件0801 指导老师: 刘伟 完成日期: 2010-12-7 一、实验目的熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。二、实验内容使用PowerDesigner和任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。(1) 简单工厂模式使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、方形(Rectangle)和三角形(Triangle) 对象,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,绘制类图并编程实现。(2) 简单工厂模式使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man对象,如果传入参数“W”,则返回一个Woman对象,使用任意一种面向对象编程语言实现该场景。现需要增加一个新的Robot类,如果传入参数“R”,则返回一个Robot对象,对代码进行修改并注意女娲的变化。(3) 工厂方法模式某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。用代码实现日志记录器实例,如果在系统中增加一个中的日志记录方式控制台日志记录(ConsoleLog),绘制类图并修改代码,注意增加新日志记录方式过程中原有代码的变化。(4) 工厂方法模式现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF图片读取器(GifReader)用于读取GIF格式的图片、JPG图片读取器(JpgReader)用于读取JPG格式的图片。图片读取器对象通过图片读取器工厂ImageReaderFactory来创建,ImageReaderFactory是一个抽象类,用于定义创建图片读取器的工厂方法,其子类GifReaderFactory和JpgReaderFactory用于创建具体的图片读取器对象。使用工厂方法模式实现该程序的设计。(5) 抽象工厂模式某系统为了改进数据库操作的性能,自定义数据库连接对象Connection和语句对象Statement,可针对不同类型的数据库提供不同的连接对象和语句对象,如提供Oracle或SQL Server专用连接类和语句类,而且用户可以通过配置文件等方式根据实际需要动态更换系统数据库。使用抽象工厂模式设计该系统。用代码模拟实现数据库操作工厂实例,要求可以通过配置文件改变数据库类型。(6) 抽象工厂模式计算机包含内存(RAM)、CPU等硬件设备,根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现计算机设备创建过程并绘制相应的类图。(7) 单例模式使用单例模式的思想实现多例模式,确保系统中某个类的对象只能存在有限个,如两个或三个,设计并编写代码实现一个多例类。(8) 单例模式使用单例模式设计一个多文档窗口(注:在Java AWT/Swing开发中可使用JDesktopPane和JInternalFrame来实现),要求在主窗体中某个内部子窗体只能实例化一次,即只能弹出一个相同的子窗体,如下图所示:(注:用C#或C+实现类似功能也可以)(9) 适配器模式现有一个接口DataOperation定义了排序方法sort(int) 和查找方法search(int, int),已知类QuickSort的quickSort(int)方法实现了快速排序算法,类BinarySearch 的binarySearch(int, int)方法实现了二分查找算法。现使用适配器模式设计一个系统,在不修改源代码的情况下将类QuickSort和类BinarySearch的方法适配到DataOperation接口中。绘制类图并编程实现。(要求实现快速排序和二分查找)(10) 适配器模式使用任意一种面向对象编程语言实现一个双向适配器实例,使得猫可以学狗叫,狗可以学猫抓老鼠。绘制相应类图并使用代码编程模拟。三、实验要求1. 正确无误绘制简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式实例的模式结构图;2. 使用任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式实例,代码运行正确无误。四、实验步骤1. 熟悉PowerDesigner15的常用功能;2. 使用PowerDesigner绘制简单工厂模式实例结构图并用面向对象编程语言实现该模式实例;3. 使用PowerDesigner绘制工厂方法模式实例结构图并用面向对象编程语言实现该模式实例;4. 使用PowerDesigner绘制抽象工厂模式实例结构图并用面向对象编程语言实现该模式实例;5. 使用PowerDesigner绘制单例模式实例结构图并用面向对象编程语言实现该模式实例;6. 使用PowerDesigner绘制适配器模式结构图并用面向对象编程语言实现该模式。五、实验结果 (1) 简单工厂模式1: 类图:结果:(2) 简单工厂模式2:类图:结果:(3) 工厂方法模式1类图:结果: (4) 工厂方法模式2类图:结果:(5) 抽象工厂模式1类图:结果:(6) 抽象工厂模式2类图:结果:(7) 单例模式1类图:结果:(8 )单例模式1类图:结果: (9) 适配器模式1类图:结果:(10) 适配器模式2类图:结果:六、实验总结 通过一段时间的对设计模式的学习和练习,我深刻的意识到了一个好的软件往往是设计模式巧妙运用的结果。要学好设计模式,就必须得彻底理解设计模式,要能够看懂设计模式中的类图,如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论