学校云 建设你的专属在线教育平台
中国大学MOOC
SPOC学校专有课程
软件设计模式
分享
spContent=软件系统设计与体系结构是一套被反复使用、多数人知晓的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式(design pattern)是对面向对象设计中反复出现的问题的解决方案。这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。这个术语的含义还存有争议。算法不是设计模式,因为算法致力于解决问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。随着软件开发社群对设计模式的兴趣日益增长,已经出版了一些相关的专著,定期召开相应的研讨会,而且Ward Cunningham为此发明了WikiWiki用来交流设计模式的经验。
—— 课程团队
课程概述

本课程是软件工程、计算机科学与技术、信息管理与信息系统等专业本科生的一门专业课,本课程是一门具有较强理论性和实践性的软件设计和开发类课程。

本课程主要学习软件设计模式基础知识、UML类图、面向对象设计原则、常用的创建型设计模式、结构型设计模式和行为型设计模式。本课程要求学生掌握常用软件设计模式的动机、定义、结构、实现、使用效果以及应用实例,能够将所学知识应用到实际软件项目设计与开发中,进一步培养学生的工程实践能力和专业技术水平,为今后从事相关工作奠定基础。

本课程首先学习软件设计模式的基本知识和UML类图;接着介绍常见的七个面向对象设计原则;然后重点介绍使用频率较高的软件设计模式,包括五种创建型设计模式(简单工厂模式、工厂方法模式、抽象工厂模式、原型模式、单例模式)、六种结构型设计模式(适配器模式、桥接模式、组合模式、装饰模式、外观模式、代理模式)和七种行为型设计模式(职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式、模板方法模式)。此外,为了帮助学生深入理解所学知识,提高实践动手能力并将所学知识应用于解决实际问题,本课程设置了相应的实践环节,针对具体问题合理选择设计模式,绘制相应的模式结构图并使用代码实现模式结构,通过实践环节,进一步理解和掌握所学知识并将所学知识应用于软件设计和开发。


授课目标

本课程是软件工程、计算机科学与技术、信息管理与信息系统等专业本科生的一门专业课,本课程是一门具有较强理论性和实践性的软件设计和开发类课程。本课程既可以在大学中相关专业中开放,也可以面向企业开放相关课程。


成绩 要求

考核内容

考核方式

成绩比例(%)

备注

软件设计模式基本知识、面向对象设计原则基本知识

实验和出勤

50

测验

软件设计模式基本知识、面向对象设计原则基本知识和软件设计模式的应用

期末考核

50

笔试


课程大纲
预备知识

UML

JAVA

参考资料

教  材:刘伟. Java设计模式实训教程. 北京: 清华大学出版社, 2018.

参考书:Steven John Metsker(史蒂芬.约翰.梅特斯克), William C.Wake(威廉.维克).Java设计模式第2版. 北京:电子工业出版社,2012.


常见问题
  1. 这门课对本科有什么用?

    这门课很多学校已经作为考研专业课的考核项,希望大家认真学习。