教育教学

当前位置: 网站首页 -> 教育教学 -> 教学工作 -> 人才培养 -> 本科生培养 -> 教学大纲 -> 正文

《C# .NET设计模式》教学大纲

信息来源: 发布日期:2015-09-25

《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