《C# .NET设计模式》实验大纲
课程名称
| C# .NET设计模式
|
|
|
课程编号
| 436310
|
|
|
开课专业
| 软件工程
|
|
|
课程类别
| 专业方向课
|
|
|
课程学分
| 3
|
|
|
总学时
| 54
|
|
|
其中实验学时
| 26
|
|
|
一、实验课程性质、目的与任务
本实验课程是以掌握项目实践中常用的二十余种面向对象设计模式为目标的四年制本科计算机专业学生的实验课程。
通过实验完成设计模式及软件架构案例,使学生系统掌握结构良好的面向对象软件体系架构设计模式,灵活运用设计模式,保证实现的软件系统架构精巧,简洁和易于理解,达到软件复用的目标。
二、实验教学基本要求
要求掌握设计模式的基本概念,并了解各种设计模式的特点、并学会应用各种设计模式于实际项目中。
上机实验要求:
(1)学生实验前必须预习实验指导书,弄清实验目的和实验步骤。
(2)由任课教师讲清实验的基本原理、方法及要求。
(3)实验小组为1-2人一组,每组每次两台计算机和相关的配套设备,每次均为2-4学时。
(4)要求学生掌握各实验所需知识、操作方法或步骤,记录实验中所遇到的问题,并写出详细的实验报告。实验报告按照学校的统一格式。
三、实验项目与类型
序号
| 实验项目
| 学时
| 实验性质
| 备注
|
验证
| 综合
| 设计
| 研究
探索
| 必做
| 选做
|
1
| 简单工厂与工厂方法模式的应用
| 2
|
|
| √
|
| √
|
|
2
| 抽象工厂模式的应用
| 2
|
|
| √
|
| √
|
|
3
| 单件模式与生成器模式
| 4
|
|
| √
|
| √
|
|
4
| 适配器模式与桥接模式
| 2
|
|
| √
|
| √
|
|
5
| 组合模式与装饰模式
| 4
|
|
| √
|
| √
|
|
6
| 门面模式与代理模式
| 4
|
|
| √
|
| √
|
|
7
| 策略模式与观察者模式
| 4
|
|
| √
|
| √
|
|
8
| 命令模式与解释器模式
| 2
|
|
| √
|
| √
|
|
9
| 迭代器模式
| 2
|
|
| √
|
| √
|
|
|
| 26
|
|
|
|
|
|
|
四、实验教学内容
实验一简单工厂与工厂方法模式的应用
1、实验目的
1)熟悉建模工具。
2)掌握简单工厂模式与工厂方法模式,并进行设计应用。
2、方法原理
Simple Factory模式角色与结构:
工厂类角色Creator (LightSimpleFactory):工厂类在客户端的直接控制下(Create方法)创建产品对象。
抽象产品角色Product (Light):定义简单工厂创建的对象的父类或它们共同拥有的接口。可以是一个类、抽象类或接口。
具体产品角色ConcreteProduct (BulbLight, TubeLight):定义工厂具体加工出的对象。
3、主要实验仪器及材料
计算机、Windows XP、Microsoft Visual Studio 2010
4、实验内容
编程实现单工厂模式与工厂方法模式。
实验二抽象工厂模式的应用
1、实验目的
1)掌握抽象工程模式的特点
2)分析具体问题,使用抽象工厂模式进行设计。
2、方法原理
Abstract Factory模式的结构:
抽象工厂(Abstract Factory)角色:担任这个角色的是工厂方法模式的核心,它是与应用系统商业逻辑无关的。
具体工厂(Concrete Factory)角色:这个角色直接在客户端的调用下创建产品的实例。这个角色含有选择合适的产品对象的逻辑,而这个逻辑是与应用系统的商业逻辑紧密相关的。
抽象产品(Abstract Product)角色:担任这个角色的类是工厂方法模式所创建的对象的父类,或它们共同拥有的接口。
具体产品(Concrete Product)角色:抽象工厂模式所创建的任何产品对象都是某一个具体产品类的实例。这是客户端最终需要的东西,其内部一定充满了应用系统的商业逻辑。
3、主要实验仪器及材料
计算机、Windows XP、Microsoft Visual Studio 2010
4、实验内容
编程实现Abstract Factory模式。
实验三单件模式与生成器模式
1、实验目的
1)了解单件模式与生成器模式的特点和适用范围。
2)分析实际问题,利用单件模式与生成器模式进行设计或改进设计。
2、方法原理
Singleton模式包含的角色只有一个,就是Singleton。Singleton拥有一个私有构造函数,确保用户无法通过new直接实例它。除此之外,该模式中包含一个静态私有成员变量instance与静态公有方法Instance()。Instance方法负责检验并实例化自己,然后存储在静态成员变量中,以确保只有一个实例被创建。
3、主要实验仪器及材料
计算机、Windows XP、Microsoft Visual Studio 2010
4、实验内容
编程实现Singleton模式。
实验四适配器模式与桥接模式
1、实验目的
1)了解适配器模式与桥接模式的特点和适用范围。
2)通过阅读代码,分析所采用的设计模式。
3)利用适配器模式与桥接模式进行设计。
2、方法原理
类的Adapter模式的结构:
目标(Target)角色:这是客户所期待的接口。因为C#不支持多继承,所以Target必须是接口,不可以是类。
源(Adaptee)角色:需要适配的类。
适配器(Adapter)角色:把源接口转换成目标接口。这一角色必须是类。
3、主要实验仪器及材料
计算机、Windows XP、Microsoft Visual Studio 2010
4、实验内容
编程实现适配器模式与桥接模式。
实验五组合模式与装饰模式
1、实验目的
1)了解组合模式与装饰模式的特点和适用范围。
2)通过阅读代码,分析所采用的设计模式,进一步熟悉模式结构。
2、方法原理
抽象构件(Component)角色:这是一个抽象角色,它给参与组合的对象规定一个接口。这个角色给出共有接口及其默认行为。
树叶构件(Leaf)角色:代表参加组合的树叶对象。一个树叶对象没有下级子对象。
树枝构件(Composite)角色:代表参加组合的有子对象的对象,并给出树枝构件对象的行为。
3、主要实验仪器及材料
计算机、Windows XP、Microsoft Visual Studio 2010
4、实验内容
编程实现组合模式与装饰模式。
实验六门面模式与代理模式
1、实验目的
1)了解门面(外观)模式与代理模式的特点和适用范围。
2)熟悉模式结构,通过阅读代码,分析模式中的角色,进一步掌握模式的应用。
3)利用设计模式进行具体问题的设计。
2、方法原理
门面模式是对象的结构模式。门面模式没有一个一般化的类图描述
门面(Facade)角色:客户端可以调用这个角色的方法。此角色知晓相关的(一个或者多个)子系统的功能和责任。在正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去。
子系统(subsystem)角色:可以同时有一个或者多个子系统。每一个子系统都不是一个单独的类,而是一个类的集合。每一个子系统都可以被客户端直接调用,或者被门面角色调用。子系统并不知道门面的存在,对于子系统而言,门面仅仅是另外一个客户端而已。
3、主要实验仪器及材料
计算机、Windows XP、Microsoft Visual Studio 2010
4、实验内容
编程实现门面模式。
五、考核方法
1.教师对学生实验过程完成情况进行详细登记,记入实验成绩中。
2.学生完成实验后按要求撰写实验报告,根据实验报告确定每次实验的等级。
3.实验成绩按20%比例计入课程的期末评定总成绩中。
六、实验指导书及主要参考书目
1.实验指导书
[1] 自编《实验指导书》
2.主要参考书
[2] 甄镭译, .net设计模式,电子工业出版社,2005
[3] Steven John Metsker C#设计模式.中国电力出版社,2005。
主 撰 人:唐海波/刘友继
审 核 人:罗如为
2012.6