《P2-实验二-设计模式实验一 .docx》由会员分享,可在线阅读,更多相关《P2-实验二-设计模式实验一 .docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结试验二设计模式试验一一、试验目的娴熟使用 PowerDesigner 和任意一种面对对象编程语言实现几种常见的设计模式,包括简洁工厂模式、 工厂方法模式、 抽象工厂模式、单例模式和适配器模式,懂得每一种设计模式的模式动机, 把握模式结构, 学习如何使用代码实现这些模式,并学会分析这些模式的使用成效。二、试验内容使用 PowerDesigner 和任意一种面对对象编程语言实现简洁工厂模式、工厂方法模式、抽象工厂模式、 单例模式和适配器模式,包括依据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。(1) 简洁工厂模式使用简洁工厂模式设计一个可以创建不同几何外形Sh
2、ape的绘图工具类,如可创建圆 形Circle 、方形 Rectangle 和三角形 Triangle对象,每个几何图形都要有绘制draw 和擦除 erase两个方法, 要求在绘制不支持的几何图形时,提示一个 UnsupportedShapeException , 绘制类图并编程实现。(2) 简洁工厂模式使用简洁工厂模式模拟女娲Nvwa 造人 Person,假如传入参数 “ M ”,就返回一个 Man对象,假如传入参数 “W ”,就返回一个 Woman 对象,使用任意一种面对对象编程语言实现 该场景。现需要增加一个新的Robot 类,假如传入参数“ R”,就返回一个 Robot 对象,对代码进
3、行修改并留意女娲的变化。(3) 工厂方法模式某系统日志记录器要求支持多种日志记录方式,如文件记录、 数据库记录等, 且用户可以依据要求动态挑选日志记录方式,现使用工厂方法模式设计该系统。用代码实现日志记录器实例,假如在系统中增加一个中的日志记录方式掌握台日志记录ConsoleLog ,绘制类图并修改代码,留意增加新日志记录方式过程中原有代码的变化。可编辑资料 - - - 欢迎下载精品名师归纳总结ClientLogFactoryLog+createLog .: Log+ writeLog : void.FileLogFactoryDatabaseLogFactoryFileLogDatabase
4、Log+ createLog : Log.+ createLog : Log.+ writeLog : void.+ writeLog : void.return new FileLog;.return new DatabaseLog;(4) 工厂方法模式现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个 图片读取器 ImageReader,如 GIF 图片读取器 GifReader 用于读取 GIF 格式的图片、 JPG 图片读取器 JpgReader用于读取JPG 格式的图片。图片读取器对象通过图片读取器工厂ImageReaderFactory 来创建, Imag
5、eReaderFactory 是一个抽象类,用于定义创建图片读取器的工厂方法, 其子类 GifReaderFactory 和 JpgReaderFactory 用于创建详细的图片读取器对象。使用工厂方法模式实现该程序的设计。(5) 抽象工厂模式某系统为了改良数据库操作的性能,自定义数据库连接对象Connection和语句对象Statement,可针对不同类型的数据库供应不同的连接对象和语句对象,如供应 Oracle 或 SQL Server 专用连接类和语句类, 而且用户可以通过配置文件等方式依据实际需要动态更换系统数据库。 使用抽象工厂模式设计该系统。用代码模拟实现数据库操作工厂实例,要求可
6、以通过配置文件转变数据库类型。可编辑资料 - - - 欢迎下载精品名师归纳总结DBFactoryConnection可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结+ createConnection + createStatement .: Connection: Statement可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结OracleFactoryOracleConnectionMySQLConnection可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精
7、品名师归纳总结+ createConnection + createStatement .: Connection: Statement可编辑资料 - - - 欢迎下载精品名师归纳总结StatementMySQLFactory可编辑资料 - - - 欢迎下载精品名师归纳总结+ createConnection + createStatement .: Connection: StatementOracleStatementMySQLStatement可编辑资料 - - - 欢迎下载精品名师归纳总结(6) 抽象工厂模式电脑包含内存 RAM 、CPU 等硬件设备,依据下面的“产品等级结构-产品族”
8、示意图, 使用抽象工厂模式实现电脑设备创建过程并绘制相应的类图。产品族一个产品族可编辑资料 - - - 欢迎下载精品名师归纳总结PcMacPcCPUMacCPUPcRAMMacRAM可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结CPURAM产品等级结构可编辑资料 - - - 欢迎下载精品名师归纳总结(7) 单例模式使用单例模式的思想实现多例模式,确保系统中某个类的对象只能存在有限个,如两个或三个,设计并编写代码实现一个多例类。(8) 单例模式使用单例模式设计一个多文档窗口注:在 Java AWT/Swing 开发中可使用 JDesktopPan
9、e和 JInternalFrame 来实现,要求在主窗体中某个内部子窗体只能实例化一次,即只能弹出一个相同的子窗体,如以下图所示:可编辑资料 - - - 欢迎下载精品名师归纳总结注:用 C# 或 C+ 实现类似功能也可以(9) 适配器模式现有一个接口DataOperation 定义了排序方法 sortint和查找方法 searchint, int ,已知类 QuickSort 的 quickSortint 方法实现了快速排序算法,类BinarySearch的binarySearchint, int 方法实现了二分查找算法。现使用适配器模式设计一个系统,在不修改源代码的情形下将类QuickSor
10、t 和类 BinarySearch 的方法适配到DataOperation 接口中。绘制类图并编程实现。 要求实现快速排序和二分查找(10) 适配器模式使用任意一种面对对象编程语言实现一个双向适配器实例,使得猫可以学狗叫, 狗可以学猫抓老鼠。绘制相应类图并使用代码编程模拟。三、试验要求1. 正确无误绘制简洁工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式实例的模式结构图。2. 使用任意一种面对对象编程语言实现简洁工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式实例,代码运行正确无误。四、试验步骤1. 熟识 PowerDesigner15 的常用功能。2. 使用 PowerD
11、esigner 绘制简洁工厂模式实例结构图并用面对对象编程语言实现该模式实例。3. 使用 PowerDesigner 绘制工厂方法模式实例结构图并用面对对象编程语言实现该模式实例。4. 使用 PowerDesigner 绘制抽象工厂模式实例结构图并用面对对象编程语言实现该模式实例。5. 使用 PowerDesigner 绘制单例模式实例结构图并用面对对象编程语言实现该模式实例。可编辑资料 - - - 欢迎下载精品名师归纳总结6. 使用 PowerDesigner 绘制适配器模式结构图并用面对对象编程语言实现该模式。五、试验报告要求1. 供应简洁工厂模式实例结构图及实现代码。2. 供应工厂方法模式实例结构图及实现代码。3. 供应抽象工厂模式实例结构图及实现代码。4. 供应单例模式实例结构图及实现代码。5. 供应适配器模式实例结构图及实现代码。6. 递交电子版试验报告,格式为“学号-试验 2.doc”,如“ 060102- 张三 -试验 2.doc”。可编辑资料 - - - 欢迎下载