设计模式解析

出版社:人民邮电出版社
出版日期:2006-10
ISBN:9787115150950
作者:ALAN SHALLOWAY,JAMES R.TROTT
页数:296页

内容概要

本书以作者自身学习、使用模式和多年来为软件开发人员(包括面向对象技术老兵和新手)讲授模式的经验为基础撰写而成。首先概述了模式的基础知识,以及面向对象分析和设计在当代软件开发中的重要性,随后使用易懂的示例代码阐明了12个最常用的模式,包括它们的基础概念、优点、权衡取舍、实现技术以及需要避免的缺陷,使读者能够理解模式背后的基本原则和动机,理解为什么它们会这样运作。
本书适合软件开发专业人士,以及计算机专业、软件工程专业的高校师生阅读,也可作为面向对象分析与设计课程的参考教材。

书籍目录

第一部分 面向对象软件开发简介
第1章 面向对象范型 3
1.1 概览 3
1.2 面向对象范型之前:功能分解 3
1.3 需求问题 5
1.4 应对变化:使用功能分解 6
1.5 应对需求变更 8
1.6 面向对象范型 11
1.7 面向对象程序设计实践 16
1.7 特殊对象方法 18
1.8 小结 19
复习题 20
简答题 20
阐述题 21
观点与应用题 21
第2章 UML 22
2.1 概览 22
2.2 什么是UML 22
2.3 为什么使用UML 23
2.4 类图 23
2.5 交互图 29
2.6 小结 31
复习题 31
简答题 31
阐述题 31
观点与应用题 31
第二部分 传统面向对象设计的局限
第3章 对代码灵活性要求很高的问题 35
3.1 概览 35
3.2 提取CAD/CAM系统的信息 35
3.3 了解专业术语 36
3.4 问题描述 37
3.5 挑战及其解决方案 39
3.6 小结 41
复习题 42
简答题 42
阐述题 42
观点与应用题 42
第4章 标准的面向对象解决方案 43
4.1 概览 43
4.2 作为特例来解决 43
4.3 小结 50
复习题 51
简答题 51
阐述题 51
观点与应用题 51
第三部分 设 计 模 式
第5章 设计模式简介 55
5.1 概览 55
5.2 设计模式源自建筑学和人类学 55
5.3 从建筑模式到软件设计模式 59
5.4 为什么学习设计模式 60
5.5 学习设计模式的其他好处 64
5.6 小结 65
复习题 65
简答题 65
阐述题 66
观点与应用题 66
第6章 Facade模式 67
6.1 概览 67
6.2 Facade模式简介 67
6.3 学习Facade模式 67
6.4 实践注记:Facade模式 70
6.5 Facade模式与CAD/CAM问题的联系 71
6.6 小结 72
复习题 72
简答题 72
阐述题 72
观点与应用题 73
第7章 Adapter模式 74
7.1 概览 74
7.2 Adapter模式简介 74
7.3 学习Adapter模式 75
7.4 实践注记:Adapter模式 79
7.5 Adapter模式与CAD/CAM问题的联系 82
7.6 小结 82
复习题 82
简答题 82
阐述题 83
观点与应用题 83
第8章 开拓视野 84
8.1 概览 84
8.2 对象:传统看法与新看法 85
8.3 封装:传统看法与新看法 86
8.4 发现变化并将其封装 89
8.5 共性和可变性分析与抽象类 92
8.6 敏捷编程的品质 94
8.7 小结 97
复习题 98
简答题 98
阐述题 98
观点与应用题 99
第9章 Strategy模式 100
9.1 概览 100
9.2 处理新需求的一种途径 100
9.3 国际电子商务系统案例研究:最初的需求 102
9.4 处理新的需求 103
9.5 Strategy模式 110
9.6 实践注记:使用Strategy模式 112
9.7 小结 113
复习题 114
简答题 114
阐述题 114
观点与应用题 114
第10章 Bridge模式 115
10.1 概览 115
10.2 Bridge模式简介 115
10.3 学习Bridge模式:示例 116
10.4 对使用设计模式的观察 125
10.5 学习Bridge模式:通过将它推演出来 126
10.6 Bridge模式回顾 133
10.7 实践注记:使用Bridge模式 134
10.8 小结 137
复习题 139
简答题 139
阐述题 139
观点与应用题 139
第11章 Abstract Factory模式 140
11.1 概览 140
11.2 Abstract Factory模式简介 140
11.3 学习Abstract Factory模式:示例 140
11.4 学习Abstract Factory模式:实现该模式 146
11.5 实践注记:Abstract Factory模式 151
11.6 将Abstract Factory模式与CAD/CAM问题联系起来 153
11.7 小结 153
复习题 154
简答题 154
阐述题 154
观点与应用题 154
第四部分 组合起来:用模式思考
第12章 专家设计之道 157
12.1 概览 157
12.2 添加特征的创建方式 157
12.3 小结 163
复习题 163
简答题 163
阐述题 164
观点与应用题 164
第13章 用模式解决CAD/CAM问题 165
13.1 概览 165
13.2 对CAD/CAM问题的回顾 165
13.3 用模式思考 166
13.4 用模式思考:步骤1 167
13.5 用模式思考:步骤2a 168
13.6 用模式思考:步骤2b 172
13.7 用模式思考:步骤2c 175
13.8 用模式思考:重复步骤2a和2b(Facade模式) 176
13.9 用模式思考:重复步骤2a和2b(Adapter模式) 177
13.10 用模式思考:重复步骤2a和2b(Abstract Factory模式) 177
13.11 用模式思考:步骤3 178
13.12 与原解决方案的比较 178
13.13 小结 179
复习题 180
简答题 180
阐述题 180
观点与应用题 180
第五部分 迈向新的设计方式
第14章 设计模式的原则与策略 183
14.1 概览 183
14.2 开闭原则 184
14.3 从背景设计原则 184
14.4 封装变化原则 188
14.5 抽象类与接口 189
14.6 理性怀疑原则 190
14.7 小结 190
复习题 191
简答题 191
阐述题 191
观点与应用题 191
第15章 共性与可变性分析 192
15.1 概览 192
15.2 共性和可变性分析与应用程序设计 192
15.3 用CVA解决CAD/CAM问题 193
15.4 小结 197
复习题 197
简答题 197
阐述题 197
观点与应用题 198
第16章 分析矩阵 199
16.1 概览 199
16.2 现实世界:充满变化 199
16.3 国际电子商务系统案例研究:应对变化 200
16.4 实践注记 206
16.5 小结 209
复习题 209
简答题 209
阐述题 209
观点与应用题 209
第17章 Decorator模式 210
17.1 概览 210
17.2 更多细节 210
17.3 Decorator模式 212
17.4 将Decorator模式应用到我们的案例研究 213
17.5 另一个例子:输入/输出 216
17.6 实践注记:使用Decorator模式 218
17.7 Decorator模式的本质 219
17.8 小结 220
复习题 220
简答题 220
阐述题 220
观点与应用题 220
第六部分 其他重要模式
第18章 Observer模式 223
18.1 概览 223
18.2 模式的分类 223
18.3 国际电子商务案例的更多需求 224
18.4 Observer模式 225
18.5 将Observer模式应用到我们的案例研究 226
18.6 实践注记:使用Observer模式 230
18.7 小结 232
复习题 232
简答题 232
阐述题 233
观点与应用题 233
第19章 Template Method模式 234
19.1 概览 234
19.2 案例研究的更多需求 234
19.3 Template Method模式 235
19.4 将Template Method模式应用到我们的案例研究 235
19.5 使用Template Method模式减少冗余 236
19.6 实践注记:使用Template Method模式 241
19.7 小结 242
复习题 243
简答题 243
阐述题 243
第七部分 各种工厂模式
第20章 来自设计模式的教益:各种工厂模式 247
20.1 概览 247
20.2 工厂 247
20.3 再谈背景 248
20.4 工厂遵循我们的准则 250
20.5 限制变化的影响 251
20.6 对工厂的另一种思考方式 251
20.7 工厂的不同角色 252
20.8 实践注记 252
20.9 小结 253
复习题 253
简答题 253
阐述题 253
观点与应用题 253
第21章 Singleton模式和Double-CheckedLocking模式 254
21.1 概览 254
21.2 Singleton模式简介 254
21.3 将Singleton模式应用到我们的案例研究 255
21.4 一种变体:Double-Checked Locking模式 257
21.5 反思 260
21.6 实践注记:使用Singleton模式和 260
Double-Checked Locking模式 260
21.7 小结 261
复习题 261
简答题 261
阐述题 261
观点与应用题 261
第22章 Object Pool模式 262
22.1 概览 262
22.2 一个需要对对象进行管理的问题 262
22.3 Object Pool模式 268
22.4 观察:工厂的作用不仅是实例化 268
22.5 小结 270
复习题 270
简答题 270
阐述题 271
观点与应用题 271
第23章 Factory Method模式 272
23.1 概览 272
23.2 案例研究的更多需求 272
23.3 Factory Method模式 273
23.4 Factory Method模式与面向对象语言 273
23.5 实践注记:使用Factory Method模式 274
23.6 小结 275
复习题 276
简答题 276
阐述题 276
观点与应用题 276
第24章 工厂模式的总结 277
24.1 概览 277
24.2 软件开发过程中的步骤 277
24.3 工厂与极限编程实践殊途同归 278
24.4 系统的扩展性 278
第八部分 终点与起点
第25章 设计模式回顾:总结与新起点 283
25.1 概览 283
25.2 面向对象原则的总结 283
25.3 设计模式如何封装实现 284
25.4 共性和可变性分析与设计模式 284
25.5 按责任分解问题域 285
25.6 模式和从背景设计 286
25.7 模式内部的关联 286
25.8 设计模式与敏捷编程实践 288
25.9 实践注记 288
25.10 小结 288
复习题 289
简答题 289
阐述题 289
观点与应用题 289
第26章 参考书目 290
26.1 本书配套网站 290
26.2 推荐阅读 291
26.3 针对Java程序员的推荐读物 292
26.4 针对C++程序员的推荐读物 293
26.5 针对COBOL程序员的推荐读物 294
26.6 极限编程的推荐读物 294
26.7 程序设计的一般性推荐读物 294
26.8 个人推荐 295

编辑推荐

本书以作者自身学习、使用模式和多年来为软件开发人员(包括面向对象技术老兵和新手)讲授模式的经验为基础撰写而成。概述了模式的基础知识,以及面向对象分析和设计在当代软件开发中的重要性,使用易懂的示例代码阐明了12个最常用的模式,使读者能够理解模式背后的基本原则和动机,理解为什么它们会这样运作。    本书适合软件开发专业人士,以及计算机专业、软件工程专业的高校师生阅读,也可作为面向对象分析与设计课程的参考教材。

作者简介

本书以作者自身学习、使用模式和多年来为软件开发人员(包括面向对象技术老兵和新手)讲授模式的经验为基础撰写而成。首先概述了模式的基础知识,以及面向对象分析和设计在当代软件开发中的重要性,随后使用易懂的示例代码阐明了12个最常用的模式,包括它们的基础概念、优点、权衡取舍、实现技术以及需要避免的缺陷,使读者能够理解模式背后的基本原则和动机,理解为什么它们会这样运作。
  本书适合软件开发专业人士,以及计算机专业、软件工程专业的高校师生阅读,也可作为面向对象分析与设计课程的参考教材。 点击链接进入新版 :
软件开发方法学精选系列:设计模式解析(第2版)(修订版)

图书封面


 设计模式解析下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计11条)

  •     如果你向成为一名优秀的软件设计人员,这本是你的必读书。书中讲解了一些设计模式,更重要的它描述了这些模式是怎么推演出来了,还讲解了OO的本质,从设计层面上的OO。总之,无论你是OO初学者,还是OO设计的老手,这本书对你都会收益非浅,最好在说一次,好书一本!!!
  •     如果你认为GOF的经典名著《设计模式》太晦涩难懂,《Head First Design Pattern》又太不技术书籍了,那么这本《设计模式解析》非常适合你!这本书每章结束时都有小结和启发性复习题,可以帮助你更好地了解自学得如何了。本书只介绍了几种比较常用简单的设计模式,因而在学习过程中会很有成就感。(额,这番言论真像是书托)发现设计模式相关的书籍都是先讲OOP设计思想然后再引入设计模式,有空的话就会顺带讲解下敏捷开发、重构,这几种编程方法论之间真是关系紧密呀。书摘:1, 功能分解,分而治之2, 找到变化并封装之3, 抽象、封装、多态、继承4, 对象组合优于类继承5, 针对接口编程6, 高内聚、低耦合7, 模式就是“在某一背景下某个问题的一种解决方案”,作用:复用解决方案、确立通用术语。Facade模式为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层的接口,使子系统更加容易使用。Adapter模式将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。Strategy模式定义一系列的算法,把他们一个个封装起来,并且使它们可相互替换,Strategy模式使算法可独立于使用它们的客户而变化。Bridge模式将抽象与实现解耦,使它们可以独立变化。Abstract Factory模式为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。Decorator模式动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式比生成子类更为灵活。Observer模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并自动更新。Template Method模式定义一个操作中算法的骨架,而将一些步骤延迟到子类中。不改变算法的结构而重定义它的步骤。Singleton模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。Factory Method定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。
  •     目前只看了一小部分, 但是已经发现很多翻译问题,摘录如下;13.2系统能够分析出和提取金属板材各部分的CAD/CAM描述;My system must be able to analyze and extract CAD/CAM descriptions of pieces of sheet metal.(分析出,为什么要多个'出')最初应该关注的是金属板材零件;Initially, I am concerned with sheet-metal parts.('应该'是从哪里来的)每个金属板材零件可能有多种部件.Each sheet-metal part can have multiple kinds of features,(features能翻译成'部件'吗);13.3"小傻瓜""You idiot!"(太暧昧了吧)13.5然后根据每个模式如何为其他模式创造背景进行选择.I then select them based on how each pattern creates the context for the other patterns.('背景'一词翻译错误)...

精彩短评 (总计50条)

  •     解析的还是不够彻底,开始举的CAD的例子贯穿始终,导致后面个别模式的例子讲解不适合略读,既不够深刻也不够浅显!
  •     虽是阐述设计模式的普及读本,但仍有很多让人深受启发的地方。
  •     对设计模式的原理有比较深的讲解,虽然我还有一些没看太懂,但是作者坚持把设计模式背后的推导详细给出来,是非常好的一种思想
  •     我的设计模式入门书籍
  •     讲的偏重应用和远离。代码实现较少。不适合设计模式入门。
  •     GOF那本书太难懂,这个就很好,里面的模式是我们项目中真正能用到的,是很有代表性的
  •     模式这种东西已经烂大街了
  •     确实有点讲义性质
  •     简单明了。
  •     原书好不好先不做评价. 中文版翻译的不好,不得不对照观看.
  •     深入浅出,讲的着实好啊。幽默风趣,设计模式入门的绝佳好书。
  •     模式入门的话,对什么是模式的类比能帮助理解模式存在的意义,避免陷入刻板的依葫芦画瓢。
  •     例子举的不是很好,有点难理解,多看就好了,不适合入门。
  •     真的是好书,作者有公司工作背景和开发背景,自己又当过讲师,主讲设计模式,他知道怎么样让读者最容易理解,同时经验丰富。
  •     以前没有看懂的书,现在终于找到一点感觉了!哈哈!好书要多个几遍,对于设计模式,要在项目中慢慢体会。
  •     当成《GoF》导读好了
  •     自有
  •     我推荐看的关于设计模式最好的书, 没有之一, 个人感觉自己对编程规模扩大后的设计思路顿悟点, 就是看完这本书以后, 当然, 有一些项目经验后再看会好的多, 也值得再看.
  •     能深入浅出的介绍设计模式
  •     设计模式入门好书,关键还薄。
  •     设计模式入门最佳书籍
  •     教科书
  •     每次读都有新的收获。
  •     还有比这个阐述OO原则更好的书吗?也许有,但是这个一本足矣,本书作者独到见解,教会你如何用OO推导模式。牛逼
  •     面向对象新视角 设计模式思维
  •     确实是本好书,比设计模式更透彻。读设计模式之前最好读读这本书。改变你对面对对象设计得想法
  •     可操作性
  •     需要再读一遍。
  •     没有看完,不过最让我佩服的还是前两章,从另一个角度讲解面向对象理论,令人回味,反复读过几遍。
  •     设计模式的java普及版
  •     有人觉得本书中那些讲解理论的内容很抽象和枯燥,可以略过,但我真心觉得这是这本书最有价值的地方之一,当我每每要开发新程序的时候都会来读一读这部分内容,不仅让我受益匪浅,而且让我获得了数不尽的好处。
  •     通过例子讲解了几个模式,让我更好地理解了 封装(多种层次) 三个view(概念 规约 实现) 可测试=低耦合高内聚 Bridge(一边是抽象 一边是实现) 原则/策略:OCP DIP Liskov AF:当问题域中有不同组的对象并且每组都用于不同情况 分析矩阵* 工厂:一个对象要么使用另一个对象,要么创建另一个对象。不要两者兼做。 对象,简单地理解成包含变量和方法的集合。但是从更高层次上理解,是职责的集合。自己负责自己。。。
  •     整本书围绕 CAD/CAM 来的,一般性,属于入门性质的。个人觉得这书不及大话。。还有DP在这书里提了N次,真让人烦!
  •     一本很合适的学习设计模式的入门书籍,我很喜欢第八章关于对象、封装的表述方式,道出了本质,让我的理解更深入了。
  •     看一半放弃了,太啰嗦了,感觉整本整本全是废话。。。
  •     对设计模式,又有了更深一步的认识,理解。非常给力啊
  •     以CAD例为线索讲模式,于我并没什么新意。
  •     为什么写编程要写这些内容 不懂 其中 第16页将多态理解成能够用一种方式引用一个类的不同派生类,但获得的行为对应于所引用的派生类 在计算机内 表示关系的uml记号 有聚集 组合 继承 和依赖四中关系 设计模式的解释是本文的重点 可以去读读建筑的永恒之道 以及建筑模式语言 模式包括模式名称 目的 实现方法 限制和约束因素
  •     对模式有了更生动的认识
  •     非常好的讲解了4人帮的书
  •     迷迷糊糊的就看完了,一头雾水,目测这本书是面向有设计模式基础的读者的。看完之后大致明白设计设计就是帮助更快都设计出更好的程序,尤其是面向对象编程中,找到更好的继承结构,即使不是最好的,设计更合理的接口,更好地复用原有的代码。
  •     不得不说,内容有点空
  •     很不错
  •     感觉有点简单,对与有一定的设计模式经验的用处不怎么大
  •     讲的通俗易懂,很好啊,要是早点看,我的C++上机也不会跪了
  •     很好,原理与实现都讲的透彻,翻译到位。
  •     选用的几个pattern很能体现ood的特点和长处,就是后面太啰嗦了...
  •     没有讲全23种设计模式,而且并不见得比GoF的简单多少.不过还是值得推荐
  •     Java版的设计模式,没有全部介绍,但是写的深入浅出,值得一读
  •     一开始都讲得面向对象比较透彻。。。但我有点懒得下代码。。。。网站上的
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024