《C# .NET设计模式》教学大纲
课程名称
| C# .NET设计模式
|
|
|
课程编号
| 436310
|
|
|
开课专业
| 软件工程
|
|
|
课程类别
| 专业方向课
|
|
|
课程学分
| 3
|
|
|
总学时
| 54
|
|
|
其中:理论
| 28
|
|
|
实验
| 26
|
|
|
先修课程
| 《软件工程》、《C#程序设计》
|
一、课程的性质、目的与任务
《C# .NET设计模式》是软件工程专业中面向.net平台程序开发方向的一门高级的专业方向课程,课程内容以介绍软件设计模式的基本思想、原则、方法为主,目的是让学生拥有运用模式的思维方法,掌握常用的设计模式。课程教学的主要任务是让学生掌握设计模式的基本概念,以及以模式为基础的软件设计基本原则,掌握GoF提出的23年经典模式,并熟悉使用C#编程语言实现常用核心模式。
二、课程教学基本内容与要求
第一章设计模式概述
(一)基本教学内容
1.1为什么使用模式?
1.2为什么使用设计模式?
1.3为什么使用c#语言?
1.4 uml
1.5本书给出的问题
(二)基本要求
教学目的:了解模式和设计模式的概念;理解模式和设计模式的作用
教学重点:重点讲解模式和设计模式的概念与使用设计模式的意义
教学难点:使用设计模式的意义
第二章接口型模式介绍
(一)基本教学内容
2.1接口与抽象类
2.2接口与委托
2.3接口与属性
2.4接口的细节
2.6普通接口无法提供的内容
(二)基本要求
教学目的:理解接口型模式的概念;掌握接口与抽象类、委托、属性的关系;掌握接口本身的具体性质;
教学重点:重点讲解接口型模式的特性及接口与抽象类、委托、属性的关系;
教学难点:接口与抽象类、委托、属性的关系。
第三章适配器模式
(一)基本教学内容
3.1对接口进行适配
3.2类适配器与对象适配器
3.3对.net的数据进行适配
(二)基本要求
教学目的:熟练掌握适配器的概念及适配器中类适配器与对象适配器的概念;理解与掌握适配器模式的概念及适用范围;掌握适配器模式在.net环境下的具体应用。
教学重点:重点讲解适配器模式的概念及适用范围;适配器模式在.net环境下的具体应用;
教学难点:适配器模式的适用范围及其在.net环境下的具体应用。
第四章外观模式
(一)基本教学内容
4.1一个普通的外观
4.2应用外观模式进行代码重构
4.3外观、公用例程以及演示
(二)基本要求
教学目的:熟练掌握外观的概念;理解与掌握外观模式的概念及适用范围;掌握外观模式在.net环境下的具体应用。
教学重点:重点讲解外观模式的概念及适用范围;外观模式在.net环境下的具体应用;
教学难点:外观模式的适用范围及其在.net环境下的具体应用。
第五章合成模式
(一)基本教学内容
5.1一个普通的合成
5.2合成的递归行为
5.3合成、树形结构,以及环形结构
5.4带环形结构的合成
5.5环形结构产生的影响
(二)基本要求
教学目的:熟练掌握合成的概念;理解合成的递归及树形、环形结构等特殊结构与合成的关系;理解与掌握合成模式的概念及适用范围;掌握合成模式在.net环境下的具体应用。
教学重点:重点讲解合成模式的概念及适用范围;合成模式在.net环境下的具体应用;
教学难点:合成的递归及树形、环形结构等特殊结构与合成的关系及其在.net环境下的具体应用。
第六章桥接模式
(一)基本教学内容
6.1一个普通的抽象
6.2从抽象到桥接
6.3作为桥接的驱动器
6.4数据库驱动器
(二)基本要求
教学目的:熟练掌握桥接的概念;理解与掌握桥接模式的概念及适用范围;掌握桥接模式在.net环境下的具体应用。
教学重点:重点讲解桥接模式的概念及适用范围;桥接模式在.net环境下的具体应用;
教学难点:桥接模式的适用范围及其在.net环境下的具体应用。
第七章职责型模式
(一)基本教学内容
7.1普通的职责
7.2利用可访问性进行职责控制
7.3普通职责无法提供的内容
(二)基本要求
教学目的:熟练掌握职责的概念;理解与掌握职责模式的概念及适用范围;掌握职责模式在.net环境下的具体应用。
教学重点:重点讲解职责模式的概念及适用范围;职责模式在.net环境下的具体应用;
教学难点:职责模式的适用范围及其在.net环境下的具体应用。
第八章单件模式
(一)基本教学内容
8.1单件模式的机制
8.2单件与线程
8.3识别单件模式
(二)基本要求
教学目的:熟练掌握单件的概念;理解与掌握单件模式的概念及适用范围;掌握单件模式在.net环境下的具体应用。
教学重点:重点讲解单件模式的概念及适用范围;单件模式在.net环境下的具体应用;
教学难点:单件模式的适用范围及其在.net环境下的具体应用。
第九章观察者模式
(一)基本教学内容
9.1 c#语言对观察者的支持
9.2委托机制
9.3一个经典的例子――gui中的观察者模式
9.4模型/视图/控制器
9.5分层
(二)基本要求
教学目的:熟练掌握观察者的概念;理解与掌握观察者模式的概念及适用范围;掌握观察者模式在.net环境下的具体应用。理解MVC模式的概念
教学重点:重点讲解观察者模式的概念及适用范围;MVC模式;
教学难点:观察者模式的适用范围及其在.net环境下的具体应用。
第十章中介者模式
(一)基本教学内容
10.1一个经典实例――gui中介者
10.2关系完整性中介者
(二)基本要求
教学目的:熟练掌握中介者的概念;理解与掌握中介者模式的概念及适用范围;掌握中介者模式在.net环境下的具体应用。
教学重点:重点讲解中介者模式的概念及适用范围;中介者模式在.net环境下的具体应用;
教学难点:中介者模式的适用范围及其在.net环境下的具体应用。
第十一章代理模式
(一)基本教学内容
11.1一个简单的代理
11.2数据代理
11.3远程代理
(二)基本要求
教学目的:熟练掌握代理的概念;理解与掌握代理模式的概念及适用范围;掌握代理模式在.net环境下的具体应用。
教学重点:重点讲解代理模式的概念及适用范围;代理模式在.net环境下的具体应用;
教学难点:代理模式的适用范围及其在.net环境下的具体应用。
第十二章职责链模式
(一)基本教学内容
12.1一个普通的职责链模式
12.2重构为职责链模式
12.3将一个链进行固定
12.4不带合成结构的职责链模式
(二)基本要求
教学目的:熟练掌握职责链的概念;理解与掌握职责链模式的概念及适用范围;掌握职责链模式在.net环境下的具体应用。
教学重点:重点讲解职责链模式的概念及适用范围;职责链模式在.net环境下的具体应用;
教学难点:职责链模式的适用范围及其在.net环境下的具体应用。
第十三章享元模式
(一)基本教学内容
13.1不可改变性
13.2提取一个享元中的不可改变部分
13.3共享享元
(二)基本要求
教学目的:熟练掌握享元的概念;理解与掌握享元模式的概念及适用范围;掌握享元模式在.net环境下的具体应用。
教学重点:重点讲解享元模式的概念及适用范围;享元模式在.net环境下的具体应用;
教学难点:享元模式的适用范围及其在.net环境下的具体应用。
第十四章构造型模式介绍
(一)基本教学内容
14.1对象构造过程中产生的一些困难
14.2普通的构造方法无法提供的内容
(二)基本要求
教学目的:理解构造型模式的概念;掌握构造过程中产生的主要困难;掌握构造方法无法解决的问题;
教学重点:重点讲解构造型模式的概念,构造过程中产生的主要困难;
教学难点:构造过程中产生的主要困难及其无法解决的问题;
第十五章生成器模式
(一)基本教学内容
15.1一个普通的生成器模式
15.2在约束下进行对象生成
15.3一个更宽容的生成器
(二)基本要求
教学目的:熟练掌握生成器的概念;理解与掌握生成器模式的概念及适用范围;掌握生成器模式在.net环境下的具体应用。
教学重点:重点讲解生成器模式的概念及适用范围;生成器模式在.net环境下的具体应用;
教学难点:生成器模式的适用范围及其在.net环境下的具体应用。
第十六章工厂方法模式
(一)基本教学内容
16.1一个经典实例――枚举器
16.2识别工厂方法模式
16.3确定对哪个类进行实例化
16.4平行层次结构中的工厂方法模式
(二)基本要求
教学目的:熟练掌握工厂方法的概念;理解与掌握工厂方法模式的概念及适用范围;掌握工厂方法模式在.net环境下的具体应用。
教学重点:重点讲解工厂方法模式的概念及适用范围;工厂方法模式在.net环境下的具体应用;
教学难点:工厂方法模式的适用范围及其在.net环境下的具体应用。
第十七章抽象工厂模式
(一)基本教学内容
17.1一个经典实例――gui工具箱
17.2抽象工厂与工厂方法
17.3命名空间与抽象工厂
(二)基本要求
教学目的:熟练掌握抽象工厂的概念;理解与掌握抽象工厂模式的概念及适用范围;掌握抽象工厂模式在.net环境下的具体应用。
教学重点:重点讲解抽象工厂模式的概念及适用范围;抽象工厂模式在.net环境下的具体应用;
教学难点:抽象工厂模式的适用范围及其在.net环境下的具体应用。
第十八章原型模式
(一)基本教学内容
18.1作为工厂的原型
18.2利用克隆进行原型化
(二)基本要求
教学目的:熟练掌握原型的概念;理解与掌握原型模式的概念及适用范围;掌握原型模式在.net环境下的具体应用。
教学重点:重点讲解原型模式的概念及适用范围;原型模式在.net环境下的具体应用;
教学难点:原型模式的适用范围及其在.net环境下的具体应用。
第十九章备忘录模式
(一)基本教学内容
19.1一个经典实例――使用备忘录
19.2备忘录的持久性
19.3跨越多次会话的永久备忘录
(二)基本要求
教学目的:熟练掌握备忘录的概念;理解与掌握备忘录模式的概念及适用范围;掌握备忘录模式在.net环境下的具体应用。
教学重点:重点讲解备忘录模式的概念及适用范围;备忘录模式在.net环境下的具体应用;
教学难点:备忘录模式的适用范围及其在.net环境下的具体应用。
第二十章操作型模式介绍
(一)基本教学内容
20.1操作与方法
20.2特征标记
20.3委托
20.4异常
20.5算法与多态
20.6普通操作无法提供的内容
(二)基本要求
教学目的:理解操作与方法的概念;掌握特征标记和委托的概念;掌握异常的处理方法;掌握算法与多态的处理方法;
教学重点:重点讲解操作与方法的概念,异常的处理方法,算法与多态的处理方法;
教学难点:操作型模式主要解决的问题;
第二十一章模板方法模式
(一)基本教学内容
21.1一个经典实例――排序
21.2完成一个算法
21.3模板方法的钩子
21.4重构为模板方法
(二)基本要求
教学目的:熟练掌握模板方法的概念;理解与掌握模板方法模式的概念及适用范围;掌握模板方法模式在.net环境下的具体应用。
教学重点:重点讲解模板方法模式的概念及适用范围;模板方法模式在.net环境下的具体应用;
教学难点:模板方法模式的适用范围及其在.net环境下的具体应用。
第二十二章状态模式
(一)基本教学内容
22.1对状态进行建模
22.2重构为状态模式
22.3使状态成为常量
(二)基本要求
教学目的:熟练掌握状态的概念;理解与掌握状态模式的概念及适用范围;掌握状态模式在.net环境下的具体应用。
教学重点:重点讲解状态模式的概念及适用范围;状态模式在.net环境下的具体应用;
教学难点:状态模式的适用范围及其在.net环境下的具体应用。
第二十三章策略模式
(一)基本教学内容
23.1对策略进行建模
23.2重构为策略模式
23.3对策略模式和状态模式进行比较
23.4对策略模式和模板方法模式进行比较
(二)基本要求
教学目的:熟练掌握策略的概念;理解与掌握策略模式的概念及适用范围;掌握策略模式在.net环境下的具体应用。
教学重点:重点讲解策略模式的概念及适用范围;策略模式在.net环境下的具体应用;
教学难点:策略模式的适用范围及其在.net环境下的具体应用。
第二十四章命令模式
(一)基本教学内容
24.1一个经典实例――菜单命令
24.2利用命令模式提供一个服务
24.3命令模式的钩子
24.4命令模式与其他模式的关系
(二)基本要求
教学目的:熟练掌握命令的概念;理解与掌握命令模式的概念及适用范围;掌握命令模式在.net环境下的具体应用。
教学重点:重点讲解命令模式的概念及适用范围;命令模式在.net环境下的具体应用;
教学难点:命令模式的适用范围及其在.net环境下的具体应用。
第二十五章解释器模式
(一)基本教学内容
25.1一个解释器实例
25.2解释器、语言以及扫描分析器
(二)基本要求
教学目的:熟练掌握解释器的概念;理解与掌握解释器模式的概念及适用范围;掌握解释器模式在.net环境下的具体应用。
教学重点:重点讲解解释器模式的概念及适用范围;解释器模式在.net环境下的具体应用;
教学难点:解释器模式的适用范围及其在.net环境下的具体应用。
第二十六章扩展型模式
(一)基本教学内容
26.1面向对象设计的基本原则
26.2 liskov替代原则
26.3 demeter法则
26.4消除代码的气味
26.5普通扩展无法提供的内容
(二)基本要求
教学目的:熟练掌握扩展型的概念;理解与掌握扩展型模式的概念及适用范围;掌握扩展型模式在.net环境下的具体应用。
教学重点:重点讲解扩展型模式的概念及适用范围;扩展型模式在.net环境下的具体应用;
教学难点:扩展型模式的适用范围及其在.net环境下的具体应用。
第二十七章装饰模式
(一)基本教学内容
27.1一个经典例子――流
27.2函数包装器
27.3 gui中的装饰器
27.4装饰模式与其他模式的关系
(二)基本要求
教学目的:熟练掌握装饰的概念;理解与掌握装饰模式的概念及适用范围;掌握装饰模式在.net环境下的具体应用。
教学重点:重点讲解装饰模式的概念及适用范围;装饰模式在.net环境下的具体应用;
教学难点:装饰模式的适用范围及其在.net环境下的具体应用。
第二十八章迭代器模式
(一)基本教学内容
28.1一般的迭代
28.2线程安全的迭代
28.3对一个合成进行迭代
(二)基本要求
教学目的:熟练掌握迭代器的概念;理解与掌握迭代器模式的概念及适用范围;掌握迭代器模式在.net环境下的具体应用。
教学重点:重点讲解迭代器模式的概念及适用范围;迭代器模式在.net环境下的具体应用;
教学难点:迭代器模式的适用范围及其在.net环境下的具体应用。
第二十九章访问者模式
(一)基本教学内容
29.1访问者机制
29.2一个普通的访问者模式
29.3访问者环
29.4对访问者模式的争论
(二)基本要求
教学目的:熟练掌握访问者的概念;理解与掌握访问者模式的概念及适用范围;掌握访问者模式在.net环境下的具体应用。
教学重点:重点讲解访问者模式的概念及适用范围;访问者模式在.net环境下的具体应用;
教学难点:访问者模式的适用范围及其在.net环境下的具体应用。
三、课程各章节学时分配
章节
| 内容
| 理论学时
| 实验学时
|
软工
|
|
| 软工
|
|
|
第1章
| 设计模式概述
| 2
|
|
| 0
|
|
|
第2章
| 接口型模式介绍
| 1
|
|
| 2
|
|
|
第3章
| 适配器模式
| 1
|
|
| 2
|
|
|
第4章
| 外观模式
| 1
|
|
| 0
|
|
|
第5章
| 合成模式
| 1
|
|
| 0
|
|
|
第6章
| 桥接模式
| 1
|
|
| 2
|
|
|
第7章
| 职责型模式
| 1
|
|
| 2
|
|
|
第8章
| 单件模式
| 0.5
|
|
| 0
|
|
|
第9章
| 观察者模式
| 0.5
|
|
| 0
|
|
|
第10章
| 中介者模式
| 1
|
|
| 2
|
|
|
第11章
| 代理模式
| 1
|
|
| 0
|
|
|
第12章
| 职责链模式
| 1
|
|
| 0
|
|
|
第13章
| 享元模式
| 1
|
|
| 2
|
|
|
第14章
| 构造型模式介绍
| 1
|
|
| 0
|
|
|
第15章
| 生成器模式
| 1
|
|
| 2
|
|
|
第16章
| 工厂方法模式
| 1
|
|
| 1
|
|
|
第17章
| 抽象工厂模式
| 1
|
|
| 1
|
|
|
第18章
| 原型模式
| 1
|
|
| 2
|
|
|
第19章
| 备忘录模式
| 1
|
|
| 2
|
|
|
第20章
| 操作型模式介绍
| 1
|
|
| 0
|
|
|
第21章
| 模板方法模式
| 1
|
|
| 0
|
|
|
第22章
| 状态模式
| 1
|
|
| 0
|
|
|
第23章
| 策略模式
| 1
|
|
| 2
|
|
|
第24章
| 命令模式
| 1
|
|
| 2
|
|
|
第25章
| 解释器模式
| 1
|
|
| 2
|
|
|
第26章
| 扩展型模式
| 1
|
|
| 0
|
|
|
第227章
| 装饰模式
| 1
|
|
| 0
|
|
|
第28章
| 迭代器模式
| 0.5
|
|
| 0
|
|
|
第29章
| 访问者模式
| 0.5
|
|
| 0
|
|
|
| 合计
| 28
|
|
| 26
|
|
|
三、本课程与其他课程的联系
先修课程:《C语言程序设计》、《面向对象程序》、《软件工程》、《C#程序设计》、《算法与分析》等课程。并提倡学生在学习过程中发挥主观能动性,为深刻理解本课程内容,积极动手独立完成各章习题,主动查找并学习相关资料。
四、本课程课外学习与修学指导
在计划内学时,做实验完成几个主要设计模式的实现;学生自行安排时间利用C#语言实现其它的设计模式。
(1)该课程是比较难学的课程,所以要多参考相关书籍,并多做练习题,理解基本概念的原理;
(2)参考国家软件设计师考试相关资料,拓展知识面。
五、本课程考核方式及成绩评定标准
考核方式:考试,闭卷
成绩评定方法:本课程的考核是平时成绩和期终考试成绩相结合,理论成绩与实验成绩相结合。具体比例为:上课出勤占10%,作业占10%,实验占20%,期末考试成绩占60%。
六、教材及参考书
教材:Steve John Metsker著 颜炯译,C#设计模式.北京:中国电力出版社,2005
主要参考书:
[1]Steven John Metsker.设计模式JAVA手册(影印版,Design Patterns Java Workbook),中国电力出版社2004年。
[2] Alan Shalloway,James R.Trott.设计模式解析(影印版)。中国电力出版社,2003年。
[3] James W.Cooper(译者:王宇林琪杜志秀)。JAVA设计模式。中国电力出版社,2003年。
[4] Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides(李英军、马晓星等译)。设计模式:可复用面向对象软件的基础机械工业出版社,2005年。
大纲撰写人: 唐海波/刘友继
大纲审阅人: 罗如为
教学副主任: 易叶青
编写日期:2012-6-15