《仲恺软件设计模式实验指导书.doc》由会员分享,可在线阅读,更多相关《仲恺软件设计模式实验指导书.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-!设计模式实验指导一、实验目的使用合理的UML建模工具(ROSE或者Visio)和任意一种面向对象编程语言实现几种常用的设计模式,加深对这些模式的理解,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、适配器模式、组合模式、装饰模式、外观模式、命令模式、迭代器模式、观察者模式、策略模式等12种模式。二、实验内容根据以下的文档描述要求,使用合理的UML建模工具(ROSE或者Visio)和任意一种面向对象编程语言实现以下设计模式,包括根据实例绘制相应的模式结构图、编写模式实现代码,运行并测试模式实例代码。(1)、 简单工厂模式使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传
2、入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,请实现该场景。现需要增加一个新的Robot类,如果传入参数R,则返回一个Robot对象,对代码进行修改并注意女娲的变化。(2)、 工厂方法模式海尔工厂(Haier)生产海尔空调(HaierAirCondition),美的工厂(Midea)生产美的空调(MideaAirCondition) 。使用工厂方法模式描述该场景,绘制类图并编程实现。(3)、 抽象工程模式电脑配件生产工厂生产内存、CPU等硬件设备,这些内存、CPU的品牌、型号并不一定相同,根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现电脑配件生产过程
3、并绘制相应的类图,绘制类图并编程实现。(4)、 单例模式用懒汉式单例实现在某系统运行时,其登录界面类LoginForm只能够弹出一个,如果第二次实例化该类则提示“程序已运行”。绘制类图并编程实现。提示:不要求做界面,用类模拟界面就可以了。(5)、 组合模式使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、音频视频文件MediaFile。绘制类图并编程实现。(6)、 适配器模式现有一个接口DataOperation定义了排序方法sor
4、t(int) 和查找方法search(int, int),已知类QuickSort的quickSort(int)方法实现了快速排序算法,类BinarySearch 的binarySearch(int, int)方法实现了二分查找算法。现使用适配器模式设计一个系统,在不修改源代码的情况下将类QuickSort和类BinarySearch的方法适配到DataOperation接口中。绘制类图并编程实现。 (要求实现快速排序和二分查找)(7)、 装饰模式某图书管理系统中,书籍类(Book)具有借书方法borrowBook()和还书方法returnBook() 。现需要动态给书籍对象添加冻结方法fre
5、eze()和遗失方法lose()。使用装饰模式设计该系统,绘制类图并编程实现。(8)、 外观模式在电脑主机(Mainframe)中,只需要按下主机的开机按钮(on(),即可调用其他硬件设备和软件的启动方法,如内存(Memory)的自检(check(),CPU的运行(run(),硬盘(HardDisk)的读取(read(),操作系统(OS)的载入(load()等,如果某一过程发生错误则电脑启动失败。使用外观模式模拟该过程,绘制类图并编程实现。(9)、 命令模式某软件公司欲开发一个基于Windows平台的公告板系统。系统提供一个主菜单(Menu),在主菜单中包含了一些菜单项(MenuItem),可
6、以通过Menu类的addMenuItem()方法增加菜单项。菜单项的主要方法是click(),每一个菜单项包含一个抽象命令类,具体命令类包括OpenCommand(打开命令),CreateCommand(新建命令),EditCommand(编辑命令)等,命令类具有一个execute()方法,用于调用公告板系统界面类(BoardScreen)的open()、create()、edit()等方法。现使用命令模式设计该系统,使得MenuItem类与BoardScreen类的耦合度降低,绘制类图并编程实现。(10)、 迭代器模式某商品管理系统的商品名称存储在一个字符串数组中,现需要自定义一个双向迭代器
7、(MyIterator)实现对该商品名称数组的双向(前向和后向)遍历。绘制类图并编程实现(设计方案必须符合DIP)。(11)、 观察者模式某在线股票软件需要提供如下功能:当股票购买者所购买的某支股票价格变化幅度达到5%时,系统将自动发送通知(包括新价格)给购买该股票的股民。现使用观察者模式设计该系统,绘制类图并编程实现。(12)、 策略模式设计一个网上书店,该系统中所有的计算机类图书(ComputerBook)每本都有10%的折扣,所有的语言类图书(LanguageBook) 每本都有2元的折扣,小说类图书(NovelBook)每100元有10元的折扣。现使用策略模式来设计该系统,绘制类图并编
8、程实现。三、实验要求1. 正确无误绘制简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、适配器模式、组合模式、装饰模式、外观模式、命令模式、迭代器模式、观察者模式、策略模式的模式结构图;2. 使用任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、适配器模式、组合模式、装饰模式、外观模式、命令模式、迭代器模式、观察者模式、策略模式,代码运行正确无误。四、实验步骤第一次实验课完成:使用Rose或者Visio绘制简单工厂模式、工厂方法模式、抽象工厂模式模式结构图并用面向对象编程语言实现该模式;第二次实验课完成:使用Rose或者Visio绘制单例模式、适配器模式、组合模
9、式模式结构图并用面向对象编程语言实现该模式;第三次实验课完成:使用Rose或者Visio绘制装饰模式、外观模式、命令模式模式结构图并用面向对象编程语言实现该模式;第四次实验课完成:使用Rose或者Visio绘制迭代器模式、观察者模式、策略模式模式结构图并用面向对象编程语言实现该模式;五、实验报告要求 提供简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、适配器模式、组合模式、装饰模式、外观模式、命令模式、迭代器模式、观察者模式、策略模式装饰模式结构图及实现代码;仲恺农业工程学院实验报告课程名称:软件设计模式班级:学号:姓名:第一次实验报告一、 实验目的使用合理的UML建模工具(ROSE或者V
10、isio)和任意一种面向对象编程语言实现几种常用的设计模式,加深对这些模式的理解,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、适配器模式、组合模式、装饰模式、外观模式、命令模式、迭代器模式、观察者模式、策略模式等12种模式。二、实验内容(1)、 简单工厂模式使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,请实现该场景。现需要增加一个新的Robot类,如果传入参数R,则返回一个Robot对象,对代码进行修改并注意女娲的变化。(2)、 工厂方法模式海尔工厂(Haier)生产海尔空调(HaierAi
11、rCondition),美的工厂(Midea)生产美的空调(MideaAirCondition) 。使用工厂方法模式描述该场景,绘制类图并编程实现。(3)、 抽象工程模式电脑配件生产工厂生产内存、CPU等硬件设备,这些内存、CPU的品牌、型号并不一定相同,根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现电脑配件生产过程并绘制相应的类图,绘制类图并编程实现。三、实验要求使用Rose或者Visio绘制简单工厂模式、工厂方法模式、抽象工厂模式模式结构图并用面向对象编程语言实现该模式;四、实验结果仲恺农业工程学院实验报告课程名称:软件设计模式班级:学号:姓名:第二次实验报告一、 实验目的
12、使用合理的UML建模工具(ROSE或者Visio)和任意一种面向对象编程语言实现几种常用的设计模式,加深对这些模式的理解,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、适配器模式、组合模式、装饰模式、外观模式、命令模式、迭代器模式、观察者模式、策略模式等12种模式。二、实验内容(1)、 单例模式用懒汉式单例实现在某系统运行时,其登录界面类LoginForm只能够弹出一个,如果第二次实例化该类则提示“程序已运行”。绘制类图并编程实现。提示:不要求做界面,用类模拟界面就可以了。(2)、 组合模式使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folde
13、r)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、音频视频文件MediaFile。绘制类图并编程实现。(3)、 适配器模式现有一个接口DataOperation定义了排序方法sort(int) 和查找方法search(int, int),已知类QuickSort的quickSort(int)方法实现了快速排序算法,类BinarySearch 的binarySearch(int, int)方法实现了二分查找算法。现使用适配器模式设计一个系统,在不修改源代码的情况下将类QuickSort和类BinarySearch的方法适配到D
14、ataOperation接口中。绘制类图并编程实现。 (要求实现快速排序和二分查找)三、实验要求使用Rose或者Visio绘制单例模式、适配器模式、组合模式模式结构图并用面向对象编程语言实现该模式;四、实验结果仲恺农业工程学院实验报告课程名称:软件设计模式班级:学号:姓名:第三次实验报告一、 实验目的使用合理的UML建模工具(ROSE或者Visio)和任意一种面向对象编程语言实现几种常用的设计模式,加深对这些模式的理解,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、适配器模式、组合模式、装饰模式、外观模式、命令模式、迭代器模式、观察者模式、策略模式等12种模式。二、实验内容(1)、
15、装饰模式某图书管理系统中,书籍类(Book)具有借书方法borrowBook()和还书方法returnBook() 。现需要动态给书籍对象添加冻结方法freeze()和遗失方法lose()。使用装饰模式设计该系统,绘制类图并编程实现。(2)、 外观模式在电脑主机(Mainframe)中,只需要按下主机的开机按钮(on(),即可调用其他硬件设备和软件的启动方法,如内存(Memory)的自检(check(),CPU的运行(run(),硬盘(HardDisk)的读取(read(),操作系统(OS)的载入(load()等,如果某一过程发生错误则电脑启动失败。使用外观模式模拟该过程,绘制类图并编程实现。
16、(3)、 命令模式某软件公司欲开发一个基于Windows平台的公告板系统。系统提供一个主菜单(Menu),在主菜单中包含了一些菜单项(MenuItem),可以通过Menu类的addMenuItem()方法增加菜单项。菜单项的主要方法是click(),每一个菜单项包含一个抽象命令类,具体命令类包括OpenCommand(打开命令),CreateCommand(新建命令),EditCommand(编辑命令)等,命令类具有一个execute()方法,用于调用公告板系统界面类(BoardScreen)的open()、create()、edit()等方法。现使用命令模式设计该系统,使得MenuItem类
17、与BoardScreen类的耦合度降低,绘制类图并编程实现。三、实验要求使用Rose或者Visio绘制装饰模式、外观模式、命令模式模式结构图并用面向对象编程语言实现该模式;四、实验结果仲恺农业工程学院实验报告课程名称:软件设计模式班级:学号:姓名:第四次实验报告一、 实验目的使用合理的UML建模工具(ROSE或者Visio)和任意一种面向对象编程语言实现几种常用的设计模式,加深对这些模式的理解,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、适配器模式、组合模式、装饰模式、外观模式、命令模式、迭代器模式、观察者模式、策略模式等12种模式。二、实验内容(1)、 迭代器模式某商品管理系统的
18、商品名称存储在一个字符串数组中,现需要自定义一个双向迭代器(MyIterator)实现对该商品名称数组的双向(前向和后向)遍历。绘制类图并编程实现(设计方案必须符合DIP)。(2)、 观察者模式某在线股票软件需要提供如下功能:当股票购买者所购买的某支股票价格变化幅度达到5%时,系统将自动发送通知(包括新价格)给购买该股票的股民。现使用观察者模式设计该系统,绘制类图并编程实现。(3)、 策略模式设计一个网上书店,该系统中所有的计算机类图书(ComputerBook)每本都有10%的折扣,所有的语言类图书(LanguageBook) 每本都有2元的折扣,小说类图书(NovelBook)每100元有10元的折扣。现使用策略模式来设计该系统,绘制类图并编程实现。三、实验要求使用Rose或者Visio绘制迭代器模式、观察者模式、策略模式模式结构图并用面向对象编程语言实现该模式;四、实验结果