描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302511052丛书名: 高等学校设计模式课程系列教材
本书结合大量实例介绍GoF设计模式,针对每个设计模式均提供了一或两个实例,并对每个模式进行了详尽的讲解,每章*后均配有一定量的习题。
本书既可作为高等院校计算机相关专业本科生和研究生“设计模式”“软件体系结构”等课程教材,也可作为各软件培训机构的培训教材及全国计算机技术与软件专业技术资格(水平)考试的辅导教材,还可作为软件架构师、软件工程师等开发人员的参考用书。
第1章统一建模语言基础知识
1.1UML简介
1.1.1UML的诞生
1.1.2UML的结构
1.1.3UML的特点
1.2类图
1.2.1类与类图
1.2.2类之间的关系
1.2.3类图实例
1.3顺序图
1.3.1顺序图定义
1.3.2顺序图组成元素与绘制
1.3.3顺序图实例
1.4状态图
1.4.1状态图定义
1.4.2状态图组成元素与绘制
1.4.3状态图实例
1.5本章小结
思考与练习
第2章面向对象设计原则
2.1面向对象设计原则概述
2.1.1软件的可维护性和可复用性
2.1.2面向对象设计原则简介
2.2单一职责原则
2.2.1单一职责原则定义
2.2.2单一职责原则分析
2.2.3单一职责原则实例
2.3开闭原则
2.3.1开闭原则定义
2.3.2开闭原则分析
2.3.3开闭原则实例
2.4里氏代换原则
2.4.1里氏代换原则定义
2.4.2里氏代换原则分析
2.4.3里氏代换原则实例
2.5依赖倒转原则
2.5.1依赖倒转原则定义
2.5.2依赖倒转原则分析
2.5.3依赖倒转原则实例
2.6接口隔离原则
2.6.1接口隔离原则定义
2.6.2接口隔离原则分析
2.6.3接口隔离原则实例
2.7合成复用原则
2.7.1合成复用原则定义
2.7.2合成复用原则分析
2.7.3合成复用原则实例
2.8迪米特法则
2.8.1迪米特法则定义
2.8.2迪米特法则分析
2.8.3迪米特法则实例
2.9本章小结
思考与练习
第3章设计模式概述
3.1设计模式的诞生与发展
3.1.1模式的诞生与定义
3.1.2软件模式
3.1.3设计模式的发展
3.2设计模式的定义与分类
3.2.1设计模式的定义
3.2.2设计模式的基本要素
3.2.3设计模式的分类
3.3GoF设计模式简介
3.4设计模式的优点
3.5本章小结
思考与练习
第4章简单工厂模式
4.1创建型模式
4.1.1创建型模式概述
4.1.2创建型模式简介
4.2简单工厂模式动机与定义
4.2.1模式动机
4.2.2模式定义
4.3简单工厂模式结构与分析
4.3.1模式结构
4.3.2模式分析
4.4简单工厂模式实例与解析
4.4.1简单工厂模式实例之简单电视机工厂
4.4.2简单工厂模式实例之权限管理
4.5简单工厂模式效果与应用
4.5.1模式优缺点
4.5.2模式适用环境
4.5.3模式应用
4.6简单工厂模式扩展
4.7本章小结
思考与练习
第5章工厂方法模式
5.1工厂方法模式动机与定义
5.1.1简单工厂模式的不足
5.1.2模式动机
5.1.3模式定义
5.2工厂方法模式结构与分析
5.2.1模式结构
5.2.2模式分析
5.3工厂方法模式实例与解析
5.3.1工厂方法模式实例之电视机工厂
5.3.2工厂方法模式实例之日志记录器
5.4工厂方法模式效果与应用
5.4.1模式优缺点
5.4.2模式适用环境
5.4.3模式应用
5.5工厂方法模式扩展
5.6本章小结
思考与练习
第6章抽象工厂模式
6.1抽象工厂模式动机与定义
6.1.1模式动机
6.1.2模式定义
6.2抽象工厂模式结构与分析
6.2.1模式结构
6.2.2模式分析
6.3抽象工厂模式实例与解析
6.3.1抽象工厂模式实例之电器工厂
6.3.2抽象工厂模式实例之数据库操作工厂
6.4抽象工厂模式效果与应用
6.4.1模式优缺点
6.4.2模式适用环境
6.4.3模式应用
6.5抽象工厂模式扩展
6.6本章小结
思考与练习
第7章建造者模式
7.1建造者模式动机与定义
7.1.1模式动机
7.1.2模式定义
7.2建造者模式结构与分析
7.2.1模式结构
7.2.2模式分析
7.3建造者模式实例与解析
7.4建造者模式效果与应用
7.4.1模式优缺点
7.4.2模式适用环境
7.4.3模式应用
7.5建造者模式扩展
7.6本章小结
思考与练习
第8章原型模式
8.1原型模式动机与定义
8.1.1模式动机
8.1.2模式定义
8.2原型模式结构与分析
8.2.1模式结构
8.2.2模式分析
8.3原型模式实例与解析
8.3.1原型模式实例之邮件复制(浅克隆)
8.3.2原型模式实例之邮件复制(深克隆)
8.4原型模式效果与应用
8.4.1模式优缺点
8.4.2模式适用环境
8.4.3模式应用
8.5原型模式扩展
8.6本章小结
思考与练习
第9章单例模式
9.1单例模式动机与定义
9.1.1模式动机
9.1.2模式定义
9.2单例模式结构与分析
9.2.1模式结构
9.2.2模式分析
9.3单例模式实例与解析
9.3.1单例模式实例之身份证号码
9.3.2单例模式实例之打印池
9.4单例模式效果与应用
9.4.1模式优缺点
9.4.2模式适用环境
9.4.3模式应用
9.5单例模式扩展
9.6本章小结
思考与练习
第10章适配器模式
10.1结构型模式
10.1.1结构型模式概述
10.1.2结构型模式简介
10.2适配器模式动机与定义
10.2.1模式动机
10.2.2模式定义
10.3适配器模式结构与分析
10.3.1模式结构
10.3.2模式分析
10.4适配器模式实例与解析
10.4.1适配器模式实例之仿生机器人
10.4.2适配器模式实例之加密适配器
10.5适配器模式效果与应用
10.5.1模式优缺点
10.5.2模式适用环境
10.5.3模式应用
10.6适配器模式扩展
10.6.1缺省适配器模式
10.6.2双向适配器
10.7本章小结
思考与练习
第11章桥接模式
11.1桥接模式动机与定义
11.1.1模式动机
11.1.2模式定义
11.2桥接模式结构与分析
11.2.1模式结构
11.2.2模式分析
11.3桥接模式实例与解析
11.3.1桥接模式实例之模拟毛笔
11.3.2桥接模式实例之跨平台视频播放器
11.4桥接模式效果与应用
11.4.1模式优缺点
11.4.2模式适用环境
11.4.3模式应用
11.5桥接模式扩展
11.6本章小结
思考与练习
第12章组合模式
12.1组合模式动机与定义
12.1.1模式动机
12.1.2模式定义
12.2组合模式结构与分析
12.2.1模式结构
12.2.2模式分析
12.3组合模式实例与解析
12.3.1组合模式实例之水果盘
12.3.2组合模式实例之文件浏览
12.4组合模式效果与应用
12.4.1模式优缺点
12.4.2模式适用环境
12.4.3模式应用
12.5组合模式扩展
12.6本章小结
思考与练习
第13章装饰模式
13.1装饰模式动机与定义
13.1.1模式动机
13.1.2模式定义
13.2装饰模式结构与分析
13.2.1模式结构
13.2.2模式分析
13.3装饰模式实例与解析
13.3.1装饰模式实例之变形金刚
13.3.2装饰模式实例之多重加密系统
13.4装饰模式效果与应用
13.4.1模式优缺点
13.4.2模式适用环境
13.4.3模式应用
13.5装饰模式扩展
13.6本章小结
思考与练习
第14章外观模式
14.1外观模式动机与定义
14.1.1模式动机
14.1.2模式定义
14.2外观模式结构与分析
14.2.1模式结构
14.2.2模式分析
14.3外观模式实例与解析
14.3.1外观模式实例之电源总开关
14.3.2外观模式实例之文件加密
14.4外观模式效果与应用
14.4.1模式优缺点
14.4.2模式适用环境
14.4.3模式应用
14.5外观模式扩展
14.6本章小结
思考与练习
第15章享元模式
15.1享元模式动机与定义
15.1.1模式动机
15.1.2模式定义
15.2享元模式结构与分析
15.2.1模式结构
15.2.2模式分析
15.3享元模式实例与解析
15.3.1享元模式实例之共享网络设备(无外部状态)
15.3.2享元模式实例之共享网络设备(有外部状态)
15.4享元模式效果与应用
15.4.1模式优缺点
15.4.2模式适用环境
15.4.3模式应用
15.5享元模式扩展
15.6本章小结
思考与练习
第16章代理模式
16.1代理模式动机与定义
16.1.1模式动机
16.1.2模式定义
16.2代理模式结构与分析
16.2.1模式结构
16.2.2模式分析
16.3代理模式实例与解析
16.3.1代理模式实例之论坛权限控制代理
16.3.2代理模式实例之日志记录代理
16.4代理模式效果与应用
16.4.1模式优缺点
16.4.2模式适用环境
16.4.3模式应用
16.5代理模式扩展
16.6本章小结
思考与练习
第17章职责链模式
17.1行为型模式
17.1.1行为型模式概述
17.1.2行为型模式简介
17.2职责链模式动机与定义
17.2.1模式动机
17.2.2模式定义
17.3职责链模式结构与分析
17.3.1模式结构
17.3.2模式分析
17.4职责链模式实例与解析
17.5职责链模式效果与应用
17.5.1模式优缺点
17.5.2模式适用环境
17.5.3模式应用
17.6职责链模式扩展
17.7本章小结
思考与练习
第18章命令模式
18.1命令模式动机与定义
18.1.1模式动机
18.1.2模式定义
18.2命令模式结构与分析
18.2.1模式结构
18.2.2模式分析
18.3命令模式实例与解析
18.3.1命令模式实例之电视机遥控器
18.3.2命令模式实例之功能键设置
18.4命令模式效果与应用
18.4.1模式优缺点
18.4.2模式适用环境
18.4.3模式应用
18.5命令模式扩展
18.6本章小结
思考与练习
第19章解释器模式
19.1解释器模式动机与定义
19.1.1模式动机
19.1.2模式定义
19.2解释器模式结构与分析
19.2.1模式结构
19.2.2模式分析
19.3解释器模式实例与解析
19.4解释器模式效果与应用
19.4.1模式优缺点
19.4.2模式适用环境
19.4.3模式应用
19.5解释器模式扩展
19.6本章小结
思考与练习
第20章迭代器模式
20.1迭代器模式动机与定义
20.1.1模式动机
20.1.2模式定义
20.2迭代器模式结构与分析
20.2.1模式结构
20.2.2模式分析
20.3迭代器模式实例与解析
20.4迭代器模式效果与应用
20.4.1模式优缺点
20.4.2模式适用环境
20.4.3模式应用
20.5迭代器模式扩展
20.6本章小结
思考与练习
第21章中介者模式
21.1中介者模式动机与定义
21.1.1模式动机
21.1.2模式定义
21.2中介者模式结构与分析
21.2.1模式结构
21.2.2模式分析
21.3中介者模式实例与解析
21.4中介者模式效果与应用
21.4.1模式优缺点
21.4.2模式适用环境
21.4.3模式应用
21.5中介者模式扩展
21.6本章小结
思考与练习
第22章备忘录模式
22.1备忘录模式动机与定义
22.1.1模式动机
22.1.2模式定义
22.2备忘录模式结构与分析
22.2.1模式结构
22.2.2模式分析
22.3备忘录模式实例与解析
22.4备忘录模式效果与应用
22.4.1模式优缺点
22.4.2模式适用环境
22.4.3模式应用
22.5备忘录模式扩展
22.6本章小结
思考与练习
第23章观察者模式
23.1观察者模式动机与定义
23.1.1模式动机
23.1.2模式定义
23.2观察者模式结构与分析
23.2.1模式结构
23.2.2模式分析
23.3观察者模式实例与解析
23.3.1观察者模式实例之猫、狗与老鼠
23.3.2观察者模式实例之自定义登录控件
23.4观察者模式效果与应用
23.4.1模式优缺点
23.4.2模式适用环境
23.4.3模式应用
23.5观察者模式扩展
23.6本章小结
思考与练习
第24章状态模式
24.1状态模式动机与定义
24.1.1模式动机
24.1.2模式定义
24.2状态模式结构与分析
24.2.1模式结构
24.2.2模式分析
24.3状态模式实例与解析
24.3.1状态模式实例之论坛用户等级
24.3.2状态模式实例之银行账户
24.4状态模式效果与应用
24.4.1模式优缺点
24.4.2模式适用环境
24.4.3模式应用
24.5状态模式扩展
24.6本章小结
思考与练习
第25章策略模式
25.1策略模式动机与定义
25.1.1模式动机
25.1.2模式定义
25.2策略模式结构与分析
25.2.1模式结构
25.2.2模式分析
25.3策略模式实例与解析
25.3.1策略模式实例之排序策略
25.3.2策略模式实例之旅游出行策略
25.4策略模式效果与应用
25.4.1模式优缺点
25.4.2模式适用环境
25.4.3模式应用
25.5策略模式扩展
25.6本章小结
思考与练习
第26章模板方法模式
26.1模板方法模式动机与定义
26.1.1模式动机
26.1.2模式定义
26.2模板方法模式结构与分析
26.2.1模式结构
26.2.2模式分析
26.3模板方法模式实例与解析
26.3.1模板方法模式实例之银行业务办理流程
26.3.2模板方法模式实例之数据库操作模板
26.4模板方法模式效果与应用
26.4.1模式优缺点
26.4.2模式适用环境
26.4.3模式应用
26.5模板方法模式扩展
26.6本章小结
思考与练习
第27章访问者模式
27.1访问者模式动机与定义
27.1.1模式动机
27.1.2模式定义
27.2访问者模式结构与分析
27.2.1模式结构
27.2.2模式分析
27.3访问者模式实例与解析
27.3.1访问者模式实例之购物车
27.3.2访问者模式实例之奖励审批系统
27.4访问者模式效果与应用
27.4.1模式优缺点
27.4.2模式适用环境
27.4.3模式应用
27.5访问者模式扩展
27.6本章小结
思考与练习
参考文献
鲁迅先生曾说过: “其实地上本没有路,走的人多了,也便成了路”。模式与之同理,它是人类在工程应用领域经验的总结与传承,是人类在具体环境下解决特定现实问题所积累和整理的解决方案。模式的概念来自于建筑领域,模式之父Christopher Alexander博士将模式定义为“在具体环境中解决问题的方法”,它可以用于人类所从事的各个领域,这其中也包括软件工程领域。
设计模式开创者之一、敏捷开发方法的创始人Erich Gamma曾说过: “设计和开发面向对象软件是非常困难的,而设计和开发可复用的面向对象软件则更加困难”。在软件开发过程中,有经验的设计者往往会重复使用他们在以前设计工作中曾经用到的一些解决方案,这些解决方案可以提高设计者的开发效率与软件质量,并使所设计的软件更加灵活,易于扩展,可复用性也更高。设计模式为实现可维护性复用而诞生。
设计模式已经成功应用于很多软件的设计中。设计模式、重构、UML等已成为一个优秀的面向对象软件开发人员所必须掌握的知识和技能。无论是面向对象编程的初学者还是有一定编程经验的程序员,都可以从设计模式的学习和使用中深入理解面向对象思想的精华,开发出可扩展性和复用性俱佳的软件。本书编者在十多年的软件开发和多年的教学工作中积累了丰富的设计模式使用经验和教学经验,也深刻体会到学习设计模式的意义。目前,国内越来越多的高校在软件工程研究生和本科生教学中开设了“软件体系结构”“面向对象分析和设计”等课程,而设计模式是这些课程的核心组成部分之一,还有的学校将设计模式作为一门单独的课程开设,而很多软件培训机构在软件工程师培训课程中也包含了设计模式相关内容。
本书的目的在于让广大学生和学员更快、更好地理解和掌握每一个设计模式。本书在整理时参考了目前市面上已有的设计模式书籍,集各家所长,并在此基础上进行扩展与整理,适用于高校和培训教学,将一些原本深奥并难以理解的设计思想通过一些简单实例进行解析,让读者能够轻松掌握面向对象设计思想的精髓。本书以“实例驱动教学”为整体编写原则,每一个模式的学习均基于一或两个实例,通过实例来加深对模式的理解,并结合实例学习如何在实际开发中运用所学模式。对于每一个模式,所学内容包括模式动机与定义、模式结构与分析、模式实例与解析、模式效果与应用和模式扩展,内容丰富,讲解透彻,并提供了模式结构和实例的UML类图和Java实现代码,所有类图均严格按照UML 2.X标准绘制,所有代码均在JDK 1.8环境下通过测试且运行无误。
本书一共有27章,可分为四个部分。
部分包含第1~3章,介绍面向对象设计的一些基本知识,包括UML基础知识、面向对象设计原则和设计模式概述,作为后续设计模式学习的知识基础。
第二部分包含第4~9章,介绍6种常用的创建型设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式和单例模式。
第三部分包含第10~16章,介绍7种常用的结构型设计模式,包括适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。
第四部分包含第17~27章,介绍11种常用的行为型设计模式,包括职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。
本书提供了完整的配套教学资料,包括实例源代码和电子课件。在每一章后面均配有一定量的习题,读者可以通过这些习题对所学知识进行巩固,加深理解,并学会在项目中运用所学知识来解决实际问题。本书提供了对应的教学视频,并配有《设计模式实验及习题解析》,作为本书的题解和实验教程。这些教学资料将形成一个完整的体系,为教学和学习提供便利。
本书既可作为高等院校软件工程专业研究生和本科生设计模式、软件体系结构、面向对象分析与设计等相关课程的教材,也可以作为各软件培训机构的软件工程师培训、软件架构师培训教材,还可以作为广大软件爱好者和软件开发人员的自学和参考用书。
本书第1版于2011年10月由清华大学出版社出版,本书修订了第1版中存在的一些错误和问题,并更新了部分内容。本书的特点是提供了配套的教学视频,供广大师生参考学习所需。本书由刘伟(中南大学软件学院)担任主编,胡志刚(中南大学软件学院)和于俊洋(河南大学软件学院)担任副主编。在编写过程中参考和引用了国内外很多书籍和网站的相关内容,部分图片的素材和个别实例的初始原型也来源于网络,由于涉及的网站和网页太多,没有一一列举,在此一并予以感谢。本书第1版已被多所高校所使用,编者也收到了很多意见和建议,在此向所有帮助和支持我们的朋友表示感谢。后特别感谢清华大学出版社为本书的改版所付出的努力。
设计模式是无数人经验的积累,希望通过这本书的学习,读者能够从一些生活实例中领悟这些模式的精髓,并能够在合适的项目场景下使用它们。有了设计模式,我们的软件将变得更像一个艺术品,而不是一堆难以维护和重用的代码。
由于时间仓促、学识有限,书中不足和疏漏之处难免,恳请广大读者将意见和建议反馈给我们,以便在后续版本中不断改进和完善。
编者2018年8月30日
评论
还没有评论。