欢迎来到天天文库
浏览记录
ID:51113091
大小:361.50 KB
页数:25页
时间:2020-03-18
《设计模式上机实验一实验归纳总结报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、设计模式实验一实验报 告书专业班级软件0703学号3901070324姓名吉亚云指导老师刘伟时间2010年3月27日中南大学软件学院25实验一设计模式上机实验一一、实验目的熟练使用PowerDesigner绘制类图,构造系统的静态结构模型;使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、原型模式、单例模式、适配器模式、桥接模式和组合模式。二、实验要求1.使用PowerDesigner绘制标准的UML类图;2.正确无误绘制简单工厂模式
2、、工厂方法模式、抽象工厂模式、原型模式、单例模式、适配器模式、桥接模式和组合模式的模式结构图;3.使用任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、原型模式、单例模式、适配器模式、桥接模式和组合模式,代码运行正确无误。三、实验步骤1.熟悉PowerDesigner11的常用功能;2.使用PowerDesigner绘制类图;3.使用PowerDesigner绘制简单工厂模式结构图并用面向对象编程语言实现该模式;4.使用PowerDesigner绘制工厂方法模式结构图并用面向对象编程语言实
3、现该模式;5.使用PowerDesigner绘制抽象工厂模式结构图并用面向对象编程语言实现该模式;6.使用PowerDesigner绘制原型模式结构图并用面向对象编程语言实现该模式;7.使用PowerDesigner绘制单例模式结构图并用面向对象编程语言实现该模式;8.使用PowerDesigner绘制适配器模式结构图并用面向对象编程语言实现该模式;9.使用PowerDesigner绘制桥接模式结构图并用面向对象编程语言实现该模式;10.使用PowerDesigner绘制组合模式结构图并用面向对象编程语言实现
4、该模式。四、实验报告要求1.绘制实例场景的类图;2.提供简单工厂模式结构图及实现代码;3.提供工厂方法模式结构图及实现代码;4.提供抽象工厂模式结构图及实现代码;5.提供原型模式结构图及实现代码;6.提供单例模式结构图及实现代码;7.提供适配器模式结构图及实现代码;8.提供桥接模式结构图及实现代码;9.提供组合模式结构图及实现代码。25五、实验结果使用PowerDesigner绘制类图;用PowerDesigner和任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、原型模式、单例模式、适配
5、器模式、桥接模式和组合模式,包括根据实例绘制模式结构图、编写模式实现代码,运行并测试模式实例代码。(1)类图某音像图书出租公司欲开发一个音像图书租赁信息系统,处理日常音像图书租借业务。该系统将记录所有的图书信息、唱碟信息、用户信息和用户租借信息。现决定采用面向对象分析和设计方法来开发此系统,经过初步分析,设计人员定义了如下初始实体类:●Book(图书)类属性:no(编号)、title(标题)、author(作者)、isbn(书号)、press(出版社)、price(价格)。方法:每个属性的get()方法和se
6、t()方法。●Disc(唱碟)类属性:no(编号)、title(标题)、singer(歌手)、producer(制作公司)、price(价格)。方法:每个属性的get()方法和set()方法。●Customer(客户)类属性:cno(客户编号)、name(姓名)、address(地址)、tel(电话)。方法:每个属性的get()方法和set()方法。●LoanItem(可租项目)类记录Book和Disc的共有属性和方法。●RentHistory(租借历史记录)类属性:rno(历史记录编号)、hireTime(
7、出租时间)、returnTime(归还时间)、cno(客户编号)、no(租借图书或唱碟编号)、deposit(押金金额)。方法:每个属性的get()方法和set()方法。在进一步分析之后,需要在LoanItem类中定义一个集合来存储每一种图书或唱碟的所有租借历史记录。根据以上信息,绘制对应的实体类类图。25(2)简单工厂模式使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、方形(Rectangle)和三角形(Triangle)对象,每个几何图形都要有绘制dr
8、aw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,绘制类图并编程实现。25//抽象图形interfaceShape{voiddraw();voiderase();}classCircleimplementsShape{publicvoiddraw(){System.out.println("Circledrawing!")
此文档下载收益归作者所有