设计模式上机实验一实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设计模式实验一

实验报告书

专业班级软件 0703 学号 3901070324 姓名吉亚云

指导老师刘伟

时间 2010年3月 27日

中南大学软件学院

实验一设计模式上机实验一

一、实验目的

熟练使用PowerDesigner绘制类图,构造系统的静态结构模型;使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、原型模式、单例模式、适配器模式、桥接模式和组合模式。

二、实验要求

1. 使用PowerDesigner绘制标准的UML类图;

2. 正确无误绘制简单工厂模式、工厂方法模式、抽象工厂模式、原型模式、单例模式、适配器模式、桥接模式和组合模式的模式结构图;

3. 使用任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、原型模式、单例模式、适配器模式、桥接模式和组合模式,代码运行正确无误。

三、实验步骤

1. 熟悉PowerDesigner11的常用功能;

2. 使用PowerDesigner绘制类图;

3. 使用PowerDesigner绘制简单工厂模式结构图并用面向对象编程语言实现该模式;

4. 使用PowerDesigner绘制工厂方法模式结构图并用面向对象编程语言实现该模式;

5. 使用PowerDesigner绘制抽象工厂模式结构图并用面向对象编程语言实现该模式;

6. 使用PowerDesigner绘制原型模式结构图并用面向对象编程语言实现该模式;

7. 使用PowerDesigner绘制单例模式结构图并用面向对象编程语言实现该模式;

8. 使用PowerDesigner绘制适配器模式结构图并用面向对象编程语言实现该模式;

9. 使用PowerDesigner绘制桥接模式结构图并用面向对象编程语言实现该模式;

10. 使用PowerDesigner绘制组合模式结构图并用面向对象编程语言实现该模式。

四、实验报告要求

1. 绘制实例场景的类图;

2. 提供简单工厂模式结构图及实现代码;

3. 提供工厂方法模式结构图及实现代码;

4. 提供抽象工厂模式结构图及实现代码;

5. 提供原型模式结构图及实现代码;

6. 提供单例模式结构图及实现代码;

7. 提供适配器模式结构图及实现代码;

8. 提供桥接模式结构图及实现代码;

9. 提供组合模式结构图及实现代码。

五、实验结果

使用PowerDesigner绘制类图;用PowerDesigner和任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、原型模式、单例模式、适配器模式、桥接模式和组合模式,包括根据实例绘制模式结构图、编写模式实现代码,运行并测试模式实例代码。

(1) 类图

某音像图书出租公司欲开发一个音像图书租赁信息系统,处理日常音像图书租借业务。该系统将记录所有的图书信息、唱碟信息、用户信息和用户租借信息。现决定采用面向对象分析和设计方法来开发此系统,经过初步分析,设计人员定义了如下初始实体类:

●Book(图书)类

属性:no(编号)、title(标题)、author(作者)、isbn(书号)、press(出版社)、price (价格)。

方法:每个属性的get()方法和set()方法。

●Disc(唱碟)类

属性:no(编号)、title(标题)、singer(歌手)、producer(制作公司)、price(价格)。

方法:每个属性的get()方法和set()方法。

●Customer(客户)类

属性:cno(客户编号)、name(姓名)、address(地址)、tel(电话)。

方法:每个属性的get()方法和set()方法。

●LoanItem(可租项目)类

记录Book和Disc的共有属性和方法。

●RentHistory(租借历史记录)类

属性:rno(历史记录编号)、hireTime(出租时间)、returnTime(归还时间)、cno(客户编号)、no(租借图书或唱碟编号)、deposit(押金金额)。

方法:每个属性的get()方法和set()方法。

在进一步分析之后,需要在LoanItem类中定义一个集合来存储每一种图书或唱碟的所有租借历史记录。

根据以上信息,绘制对应的实体类类图。

(2) 简单工厂模式

使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、方形(Rectangle)和三角形(Triangle) 对象,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,绘制类图并编程实现。

//抽象图形

interface Shape

{

void draw();

void erase();

}

class Circle implements Shape

{

public void draw()

{

System.out.println("Circle drawing!");

}

public void erase()

{

System.out.println("Circle eraseing!");

}

}

class Rectangle implements Shape

{

public void draw()

{

System.out.println("Rectangle drawing!");

}

相关文档
最新文档