标题：设计模式实训教程
图书信息
作者：刘伟 [1]  
定价：34元
印次：1-1
装帧：平装
印刷日期：2012-1-11
图书简介
本书通过大量项目实例让读者加深对GoF设计模式的理解，在学习模式的同时掌握如何在实际软件开发中运用模式，并通过大量练习来强化对设计模式的理解和掌握。
本书共分6章，内容包括UML类图实训，面向对象设计原则实训，创建型模式实训，结构型模式实训，行为型模式实训。从第3章到第5章，结合实例和大量实训练习学习如何在项目开发中使用设计模式； 第6章对设计模式的相关知识进行补充，提供了6个模式联用解决方案，通过两个综合实例学习如何在应用开发中使用设计模式，同时提供了一些企业招聘过程中出现的面试和笔试试题并给出参考答案。
本书既可作为各类高等院校计算机和软件相关专业本专科生和研究生软件设计模式、软件体系结构等课程教学辅导用书和教师参考用书，也可作为全国计算机技术与软件专业技术资格（水平）考试辅导用书和软件架构师、软件工程师等开发人员的参考用书，还可以作为设计模式爱好者和自学者的习题集和实训教程以及就业之前的复习用书。
前言
随着面向对象技术的发展和广泛应用，设计模式已成为面向对象开发人员的必备技能之一。无论是面向对象的初学者还是具有一定开发经验的程序员，都可以通过对设计模式的学习和应用加深对面向对象思想的理解，开发出具有更好的可扩展性和复用性的软件。笔者在多年的面向对象教学和实践开发中也深刻体会到学习设计模式的意义，在教授C++、Java、C#等课程的同时，结合一些常用的设计模式可以让学生更好地理解面向对象的特性、抽象层的作用、合成复用的优点等原本很抽象、较难理解的思想和概念。正如笔者经常和学生以及学员们说的： 掌握设计模式后，就会发现面向对象设计是一门艺术，就会发现有些模式是如此巧妙，就一定会受益于GoF所做的工作。
当前，在很多高校的软件工程专业的本科或研究生培养方案中都设置了面向对象分析与设计、软件设计模式、软件体系结构等课程，不少企业也开始注重对员工面向对象编程思想和设计模式等的培训，部分软件培训机构也将设计模式作为软件工程师培训课程的基本内容之一。在我国较为权威的全国计算机技术与软件专业技术资格（水平）考试的系统架构设计师（高级）、软件设计师（中级）等级别的考试中，关于设计模式的试题也占据一定的比例，近几年软件设计师考试题中固定有一道15分的设计模式大题，2009年开考的系统架构设计师考试中也有不少设计模式相关试题，笔者也有幸以湖南省第一、全国第四的成绩成为第一批国家认证系统架构设计师。
近年来，笔者一直承担中南大学软件学院Java实训、软件体系结构、设计模式等课程的教学任务，同时也作为长沙创智新程教育技术有限公司的软件工程专业课顾问承担设计模式、系统分析和设计等课程的教学和教研工作，也给一些软件企业提供UML和设计模式等课程的企业内训，并主持和参与一些软件项目的开发工作，从这些教学和开发工作中，笔者发现通过实例，尤其是结合软件项目实例是学习和掌握设计模式的最佳途径，而目前已出版的很多设计模式书籍大多通过一些生活实例来引入和学习设计模式，虽然可以让读者很轻松地学习，但很难做到深入理解和熟练运用，此外，部分教材缺少相应的练习来加深对所学模式的理解和掌握，有的书中虽有一些练习，但数量不多且针对性不强。因此，笔者一直想将这些年积累下来的一些实例整理成册，于是本书诞生了。
1. 本书特色
本书是国内第一本设计模式实训教程和习题集，通过大量项目实例让读者加深对GoF设计模式的理解，在学习模式的同时掌握如何在实际软件开发中运用模式，并通过大量练习来强化对设计模式的理解和掌握。笔者整理了这些年在设计模式教学和企业项目开发经验中积累的设计模式实训素材，同时参考了大量已有的设计模式书籍和网站，广泛收集各类设计模式实例和试题，包括历年全国计算机技术与软件专业技术资格（水平）考试试题、知名软件公司招聘面试和笔试题、国内外高校设计模式课程考试试题等，同时结合实际项目设计了大量练习题，包括选择题、模式代码填空题、综合分析题等多种题型，让读者在学习设计模式之余检验学习效果并结合实例来巩固所学知识。收集和整理的过程虽然很辛苦，也很耗时，但若能为我国软件事业的发展和面向对象技术的推广尽一份绵薄之力，所有付出都是值得的。
为了让设计模式的初学者也能够看懂本教程，在本书中的每一章前面都包含了“知识讲解”单元，让读者可以较快了解模式的基本知识，再结合后续实例进行深入学习。当然，如果配有一本专门的设计模式教材来学习则效果更好，本书也是笔者另外一本设计模式书籍《设计模式》的配套习题集，部分实例来自《设计模式》每一章后的思考和练习题。如果在学习完《设计模式》中的每一个模式之后，再通过本书的练习来进一步巩固，笔者相信会取得更好的学习效果。在本书中，针对每一个模式都提供了一个完整的实例，包括UML类图、源代码和实例分析，且每个模式都对应多道选择题、一道代码填空题和一道综合分析题，所有练习都提供了参考答案，部分综合分析题还提供了完整代码，本书所有类图均严格按照UML 2.0标准绘制，所有代码均在JDK 1.6环境下通过测试且运行无误。
2. 本书内容
本书包括6章： 第1章介绍UML类图并通过实训让读者掌握如何阅读和绘制类图，学习使用类图来构造软件的静态模型； 第2章介绍7个常用的面向对象设计原则，结合实例学习如何使用这些原则对系统进行重构； 第3章介绍6个创建型设计模式，第4章介绍7个结构型设计模式，第5章介绍11个行为型设计模式，从第3章到第5章，结合实例和大量实训练习来进行学习； 第6章对设计模式的相关知识进行补充，提供了6个模式联用解决方案，并通过两个综合实例来学习如何在应用开发中使用设计模式，同时提供了一些企业招聘过程中出现的面试和笔试试题并给出参考答案。
3. 目标读者
本书既可作为各类高等院校计算机和软件相关专业本专科生和研究生软件设计模式、软件体系结构等课程教学辅导用书、实验课教材和教师参考用书，也可作为全国计算机技术与软件专业技术资格（水平）考试辅导用书和软件架构师、软件工程师等开发人员的参考用书，还可以作为企业内训、设计模式爱好者和自学者的习题集和实训教程以及就业之前的复习用书。
4. 感谢
由于本书是一本实训教程和实战手册，涉及大量的实例及分析，这些实例的收集、整理和设计工作离不开众多同事和学生的帮助，在此对他们一并表示感谢。感谢中南大学软件学院胡志刚教授在百忙之中抽出宝贵时间对本书进行细致的审校，感谢中南大学软件学院江林、杨柳和中南大学信息科学与工程学院郭克华、王斌等在本书写作过程中提出的宝贵意见和建议，感谢长沙创智新程教育技术有限公司任波、夏绪武、赵璟等参与部分内容的校稿工作，感谢唐磊、段玉冰、马元文、李辉、袁磊、谭华、雷松等学生发现本书中的文字纰漏和错误，感谢湖南科创信息技术股份有限公司彭宇波、刘剑峰等员工提供的一些企业应用实例，感谢我的爱人夏莉，她一直在我背后默默地付出，感谢我的父母和家人，他们给了我极大的支持。在编写过程中我参考和引用了国内外很多书籍和网站的相关内容，个别实例和练习的初始原型也来源于网络，由于涉及的网站和网页太多，没有一一列举，在此一并予以感谢。最后特别感谢清华大学出版社为本书出版所作出的努力。
由于时间仓促、学识有限，书中不足和疏漏之处难免，恳请广大读者将意见和建议通过清华大学出版社反馈给我，以便在后续版本中不断改进和完善。
图书目录
第1章UML类图实训
1.1知识讲解
1.1.1UML概述
1.1.2类与类的UML表示
1.1.3类之间的关系
1.2实训实例
1.2.1类图实例之图书管理系统
1.2.2类图实例之商场会员管理系统
1.3实训练习
第2章面向对象设计原则实训
2.1知识讲解
2.1.1面向对象设计原则概述
2.1.2单一职责原则
2.1.3开闭原则
2.1.4里氏代换原则
2.1.5依赖倒转原则
2.1.6接口隔离原则
2.1.7合成复用原则
2.1.8迪米特法则
2.2实训实例
2.2.1单一职责原则实例分析
2.2.2开闭原则实例分析
2.2.3里氏代换原则实例分析
2.2.4依赖倒转原则实例分析
2.2.5接口隔离原则实例分析
2.2.6合成复用原则实例分析
2.2.7迪米特法则实例分析
2.3实训练习
第3章创建型模式实训
3.1知识讲解
3.1.1设计模式
3.1.2创建型模式概述
3.1.3简单工厂模式
3.1.4工厂方法模式
3.1.5抽象工厂模式
3.1.6建造者模式
3.1.7原型模式
3.1.8单例模式
3.2实训实例
3.2.1简单工厂模式实例之图形工厂
3.2.2工厂方法模式实例之日志记录器
3.2.3抽象工厂模式实例之数据库操作工厂
3.2.4建造者模式实例之游戏人物角色
3.2.5原型模式实例之快速创建工作周报
3.2.6单例模式实例之多文档窗口
3.3实训练习
第4章结构型模式实训
4.1知识讲解
4.1.1结构型模式概述
4.1.2适配器模式
4.1.3桥接模式
4.1.4组合模式
4.1.5装饰模式
4.1.6外观模式
4.1.7享元模式
4.1.8代理模式
4.2实训实例
4.2.1适配器模式实例之算法适配
4.2.2桥接模式实例之跨平台视频播放器
4.2.3组合模式实例之杀毒软件
4.2.4装饰模式实例之界面显示构件库
4.2.5外观模式实例之文件加密
4.2.6享元模式实例之围棋棋子
4.2.7代理模式实例之日志记录代理
4.3实训练习
第5章行为型模式实训
5.1知识讲解
5.1.1行为型模式概述
5.1.2职责链模式
5.1.3命令模式
5.1.4解释器模式
5.1.5迭代器模式
5.1.6中介者模式
5.1.7备忘录模式
5.1.8观察者模式
5.1.9状态模式
5.1.10策略模式
5.1.11模板方法模式
5.1.12访问者模式
5.2实训实例
5.2.1职责链模式实例之在线文档帮助系统
5.2.2命令模式实例之公告板系统
5.2.3解释器模式实例之机器人控制程序
5.2.4迭代器模式实例之商品名称遍历
5.2.5中介者模式实例之温度转换器
5.2.6备忘录模式实例之游戏恢复点设置
5.2.7观察者模式实例之股票变化
5.2.8状态模式实例之银行账户
5.2.9策略模式实例之电影票打折
5.2.10模板方法模式实例之数据库操作
5.2.11访问者模式实例之奖励审批
5.3实训练习
第6章模式联用与综合实例实训
6.1设计模式补充知识
6.1.1反射与配置文件
6.1.2GRASP模式
6.1.3架构模式与MVC
6.2模式联用实训
6.2.1适配器模式与桥接模式联用
6.2.2组合模式与命令模式联用
6.2.3外观模式与单例模式联用
6.2.4原型模式与备忘录模式联用
6.2.5观察者模式与组合模式联用
6.2.6访问者模式、组合模式与迭代器模式联用
6.3综合实例实训
6.3.1多人联机射击游戏
6.3.2数据库同步系统
6.4实训练习
附录A参考答案
A.1第1章实训练习参考答案
A.2第2章实训练习参考答案
A.3第3章实训练习参考答案
A.4第4章实训练习参考答案
A.5第5章实训练习参考答案
A.6第6章实训练习参考答案
参考文献