前言
随着软件开发复杂度的增加,软件开发成本变得越来越高。在软件设计中,提高代码的可复用性、可维护性、稳健性、安全性和可读性变得非常重要,GoF的23种设计模式正好解决了其中的主要问题。
现在大多数高等院校的计算机科学与技术专业、软件工程专业都开设了软件设计模式的课程,有些院校的信息管理专业和物联网专业也开设了该课程。但是,目前市场上出现的此类书主要是专著,可作为教材的较少,而且大部分没有提供配套的教辅资源,不太适合作为本专科院校的教学用书。为了满足社会需求,让学生能充分掌握这23种设计模式,提高其软件开发能力,有必要编写适用于高校的教材。
本书采用“任务驱动”的教学方法,根据各种设计模式之间的关系和相似点组织教材目录,对每种模式提出产生背景,并用UML建模语言分析模式的结构,然后用简单易懂的实例加深学生对该模式的理解。本书的实例都取材于生活,且尽量提供丰富多彩的窗体程序开发,这是其他的教材中难见到的。本书重视编程训练,做到理论与实践相结合,每章包括:教学目标、重点内容、基本概念、基本原理、编程实例、应用场景、习题等多个方面的内容。另外,本书提供丰富的配套教学资源,主要包括本书的课程标准、实验大纲、上机指导、相关案例的源代码、习题答案和电子课件等内容。全书分为9章,各章的内容如下。
第1章 设计模式基础:主要介绍软件设计模式的产生背景、软件设计模式的定义与基本要素、软件设计模式的分类,以及学习软件设计模式的意义。另外,还介绍了后面各章要用到的UML类之间的关系,以及类图的画法。还重点讲解了软件设计必须遵循的7种面向对象设计原则。
第2章 创建型模式(上):主要介绍创建型模式的特点和分类,以及单例模式与原型模式的定义与特点、结构与实现、应用场景和模式的扩展,并通过多个应用实例来说明模式的使用方法。
第3章 创建型模式(下):主要介绍工厂方法模式、抽象工厂模式、建造者模式等3种创建型模式的定义、特点、结构与实现,并通过应用实例介绍了这3种创建型模式的实现方法,最后分析了它们的应用场景和扩展方向。
第4章 结构型模式(上):主要介绍结构型模式的特点和分类,以及代理模式、适配器模式、桥接模式的定义、特点、结构、实现方法与扩展方向,并通过多个应用实例来说明这3种设计模式的应用场景和使用方法。
第5章 结构型模式(下):主要介绍装饰模式、外观模式、享元模式、组合模式的定义、特点、结构、实现方法与扩展方向,并通过多个应用实例来说明这4种设计模式的应用场景和使用方法。
第6章 行为型模式(上):主要介绍行为型模式的特点和分类,以及模板方法模式、策略模式、命令模式的定义、特点、结构、实现方法与扩展方向,并通过多个应用实例来说明这3种设计模式的应用场景和使用方法。
第7章 行为型模式(中):主要介绍职责链模式、状态模式、观察者模式、中介者模式的定义、特点、结构、实现方法与扩展方向,并通过多个应用实例来说明这4种设计模式的应用场景和使用方法。
第8章 行为型模式(下):主要介绍迭代器模式、访问者模式、备忘录模式、解释器模式的定义、特点、结构、实现方法与扩展方向,并通过多个应用实例来说明这4种设计模式的应用场景和使用方法。
第9章 设计模式实验指导:主要介绍类的基本概念和类之间关系,在UMLet中绘制类图的基本方法,以及创建型、结构型和行为型等3类设计模式的工作原理,并以工厂方法(Factory Method)模式、代理(Proxy)模式和观察者(Observer)模式为例介绍其相关类图的画法,以及应用相关设计模式开发应用程序的基本方法。每个实验都介绍了其实验目的、工作原理、实验内容、实验要求和实验步骤。
本书由程细柱编写,虽然在编写过程中倾注了大量心血,但书中难免存在疏漏和不足之处,恳请广大读者批评指正,本人不胜感谢。编者E-mail:cxz973@qq.com。另外,本书免费提供的电子教案和源代码等相关教学资源,可从人邮教育网站(www.ryjiaoyu.com)下载。
编者
2018年2月