软件设计模式实验指导书.docx
- 文档编号:29110392
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:11
- 大小:216.25KB
软件设计模式实验指导书.docx
《软件设计模式实验指导书.docx》由会员分享,可在线阅读,更多相关《软件设计模式实验指导书.docx(11页珍藏版)》请在冰豆网上搜索。
软件设计模式实验指导书
《设计模式》课程实验指导书
软件工程教研室
计算机与信息工程学院
2011年6月
实验总体说明
1.实验总体目标
配合设计模式的教学,培养学生的实际操作能力。
2.实验课时分配
实验项目
学时
实验一Adapter设计模式
2
实验二BRIDGE设计模式
2
实验三SINGLETON设计模式
2
实验四PROXY设计模式
2
实验五FactoryMethod设计模式
2
实验六COMMAND设计模式
2
实验七INTERPRETER设计模式
2
实验八ITERATOR设计模式
2
实验九VISITOR设计模式
2
请根据自身情况,选作其中部分模式。
3.实验环境
操作系统:
Win2000,WinXP;
开发语言:
C++,Java,C#
开发环境:
VC++6.0,Eclipse,VSStudio2005等
4.实验总体要求
●按照各项实验内容做实验,包括操作、观察、记录、分析,通过操作和观察获得直观印象,有些实验还应该从获得的数据中分析软件的内部功能;
●
●对提供源程序的实验,首先要阅读,理解和掌握程序的设计思想和采用的算法,在理解源程序的基础进行改动和扩充;
●
●部分实验由于实验条件的限制,可能暂时不能进行,但也要按实验指导说明的操作步骤去理解和掌握;
●
●每项实验均应提交实验报告,实验报告的内容可参照实验的具体要求,但总体上应包括以下内容:
实验题目,实验内容说明,实验准备情况,实验记录,实验结果分析,算法描述,程序段,实验过程中遇到的问题等。
实验一Adapter设计模式
1.实验目的
将一个类的接口转换成客户希望的另外一个接口。
Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
有时,为复用而设计的工具箱类不能够被复用的原因仅仅是因为它的接口与专业应用领域所需要的接口不匹配。
2.实验环境
●VC++
●JAVA
●C#
3.实验内容
设计一个Adapter案例并实现,并撰写设计报告。
4.实验要求
◆试验要求包含典型的Adapter结构。
◆程序能够明确表达设计思想。
实验二BRIDGE设计模式
1.实验目的
将抽象部分与它的实现部分分离,使它们都可以独立地变化。
当一个抽象可能有多个实现时,通常用继承来协调它们。
抽象类定义对该抽象的接口,而具体的子类则用不同方式加以实现。
但是此方法有时不够灵活。
继承机制将抽象部分与它的实现部分固定在一起,使得难以对抽象部分和实现部分独立地进行修改、扩充和重用。
2.实验环境
●VC++
●JAVA
●C#
3.实验内容
设计一个BRIDGE案例并实现,并撰写设计报告。
4.实验要求
◆试验要求包含典型的BRIDGE结构。
◆程序能够明确表达设计思想。
实验三SINGLETON设计模式
1.实验目的
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
让类自身负责保存它的唯一实例。
这个类可以保证没有其他实例可以被创建(通过截取创建新对象的请求),并且它可以提供一个访问该实例的方法。
2.实验环境
●VC++
●JAVA
●C#
3.实验内容
设计一个SINGLETON案例并实现,并撰写设计报告。
4.实验要求
◆试验要求包含典型的SINGLETON结构。
◆程序能够明确表达设计思想。
实验四PROXY设计模式
1.实验目的
为其他对象提供一种代理以控制对这个对象的访问。
对一个对象进行访问控制的一个原因是为了只有在我们确实需要这个对象时才对它进行创建和初始化。
我们考虑一个可以在文档中嵌入图形对象的文档编辑器。
有些图形对象(如大型光栅图像)的创建开销很大。
但是打开文档必须很迅速,因此我们在打开文档时应避免一次性创建所有开销很大的对象。
因为并非所有这些对象在文档中都同时可见,所以也没有必要同时创建这些对象。
2.实验环境
●VC++
●JAVA
●C#
3.实验内容
设计一个PROXY案例并实现,并撰写设计报告。
4.
实验要求
◆试验要求包含典型的PROXY结构。
◆程序能够明确表达设计思想。
实验五FactoryMethod设计模式
1.实验目的
定义一个用于创建对象的接口,让子类决定实例化哪一个类。
FactoryMethod使一个类的实例化延迟到其子类。
框架使用抽象类定义和维护对象之间的关系。
这些对象的创建通常也由框架负责。
考虑这样一个应用框架,它可以向用户显示多个文档。
在这个框架中,两个主要的抽象是类Application和Document。
这两个类都是抽象的,客户必须通过它们的子类来做与具体应用相关的实现。
2.实验环境
●VC++
●JAVA
●C#
3.实验内容
设计一个FactoryMethod案例并实现,并撰写设计报告。
4.实验要求
◆试验要求包含典型的FactoryMethod结构。
◆程序能够明确表达设计思想。
实验六COMMAND设计模式
1.实验目的
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。
有时必须向某对象提交请求,但并不知道关于被请求的操作或请求的接受者的任何信息。
例如,用户界面工具箱包括按钮和菜单这样的对象,它们执行请求响应用户输入。
但工具箱不能显式的在按钮或菜单中实现该请求,因为只有使用工具箱的应用知道该由哪个对象做哪个操作。
而工具箱的设计者无法知道请求的接受者或执行的操作。
2.实验环境
●VC++
●JAVA
●C#
3.实验内容
设计一个COMMAND案例并实现,并撰写设计报告。
4.实验要求
◆试验要求包含典型的COMMAND结构。
◆程序能够明确表达设计思想。
实验七INTERPRETER设计模式
1.实验目的
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。
这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。
2.实验环境
●VC++
●JAVA
●C#
3.实验内容
设计一个INTERPRETER案例并实现,并撰写设计报告。
4.
实验要求
◆试验要求包含典型的INTERPRETER结构。
◆程序能够明确表达设计思想。
实验八ITERATOR设计模式
1.实验目的
提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示
一个聚合对象,如列表(list),应该提供一种方法来让别人可以访问它的元素,而又不需暴露它的内部结构.此外,针对不同的需要,可能要以不同的方式遍历这个列表。
但是即使可以预见到所需的那些遍历操作,你可能也不希望列表的接口中充斥着各种不同遍历的操作。
有时还可能需要在同一个表列上同时进行多个遍历。
2.实验环境
●VC++
●JAVA
●C#
3.实验内容
设计一个ITERATOR案例并实现,并撰写设计报告。
4.实验要求
◆试验要求包含典型的ITERATOR结构。
◆程序能够明确表达设计思想。
实验九VISITOR设计模式
1.实验目的
表示一个作用于某对象结构中的各元素的操作。
它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
考虑一个编译器,它将源程序表示为一个抽象语法树。
该编译器需在抽象语法树上实施某些操作以进行“静态语义”分析,例如检查是否所有的变量都已经被定义了。
它也需要生成代码。
因此它可能要定义许多操作以进行类型检查、代码优化、流程分析,检查变量是否在使用前被赋初值,等等。
2.实验环境
●VC++
●JAVA
●C#
3.实验内容
设计一个VISITOR案例并实现,并撰写设计报告。
4.
实验要求
◆试验要求包含典型的VISITOR结构。
◆程序能够明确表达设计思想。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 模式 实验 指导书