实验二  设计模式实验一
一、实验目的
熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果
二、实验内容
使用PowerDesigner和任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。
(1) 简单工厂模式
使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Cir
cle)、方形(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是一个抽象类,用于定义创建图片读
取器的工厂方法,其子类GifReaderFactoryJpgReaderFactory用于创建具体的图片读取器对象。使用工厂方法模式实现该程序的设计。
(5) 抽象工厂模式
某系统为了改进数据库操作的性能,自定义数据库连接对象Connection和语句对象Statement,可针对不同类型的数据库提供不同的连接对象和语句对象,如提供OracleSQL Server专用连接类和语句类,而且用户可以通过配置文件等方式根据实际需要动态更换系统数据库。使用抽象工厂模式设计该系统。用代码模拟实现数据库操作工厂实例,要求可以通过配置文件改变数据库类型。
(6) 抽象工厂模式
计算机包含内存(RAM)、CPU等硬件设备,根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现计算机设备创建过程并绘制相应的类图。
(7) 单例模式
使用单例模式的思想实现多例模式,确保系统中某个类的对象只能存在有限个,如两个或三个,设计并编写代码实现一个多例类。
(8) 单例模式
使用单例模式设计一个多文档窗口(注:在Java AWT/Swing开发中可使用JDesktopPaneJInternalFrame来实现),要求在主窗体中某个内部子窗体只能实例化一次,即只能弹出一个相同的子窗体,如下图所示:
(注:用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. 提供简单工厂模式实例结构图及实现代码;
2. 提供工厂方法模式实例结构图及实现代码;
3. 提供抽象工厂模式实例结构图及实现代码;
4. 提供单例模式实例结构图及实现代码;
5. 提供适配器模式实例结构图及实现代码。
6. 递交电子版实验报告,格式为“学号-姓名-单例模式的几种实现方式实验2.doc”,如“060102-张三-实验2.doc”。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。