《软件架构与模式》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:乔希姆·戈尔著;贾山译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302450993
  • 页数:312 页
图书介绍:书首先介绍的是一些基本的原则。接下来讲解如何把这些面向对象的原则运用到系统构架和设计模式中。所有这些讲解都配有Java语言的程序实例。在讲解设计原则之后,本书将重点探讨系统架构和设计模式,通过附带的实例,读者可以从中选择适合自己系统的模式。

第1章 面向对象设计的原理 1

1.1 程序的可读性、正确性和可扩展性 2

1.1.1 可读性 2

1.1.2 正确性 2

1.1.3 可扩展性 3

1.2 封装、抽象和信息隐藏 3

1.3 关注点分离和单一职责原则 4

1.4 接口隔离原则 6

1.5 松耦合 6

1.6 里氏代换原则 7

1.7 契约式设计 9

1.7.1 断言 9

1.7.2 覆写要遵守契约 11

1.8 开闭原则 13

1.9 依赖倒置原则和控制反转 18

1.9.1 依赖倒置原则 18

1.9.2 控制反转 19

1.10 对象生成过程中减少依赖性 21

1.10.1 依赖查找 22

1.10.2 依赖注入 26

1.11 总结 28

1.12 练习 29

第2章 软件架构 30

2.1 软件架构概念 31

2.2 软件架构的质量 32

2.3 参考架构、架构模式和设计模式 33

2.4 软件架构概念的任务和前景 34

2.4.1 系统中的分析任务 34

2.4.2 系统中的结构设计任务 35

2.4.3 观察软件架构的角度 37

2.4.4 软件架构的原型 37

2.5 软件架构师对一个项目的意义 37

2.5.1 软件架构师的技术能力 38

2.5.2 软件架构师的沟通能力 38

2.5.3 构造软件架构过程中的决定 39

2.6 总结 40

2.7 练习 41

第3章 软件设计的模式 42

3.1 模式的使用 43

3.2 模式的属性和它的设计 44

3.3 架构模式、设计模式和惯用法的界限 44

3.4 描述设计模式和架构模式的模板 46

3.5 总结 47

3.6 练习 47

第4章 面向对象设计模式 48

4.1 设计模式的分类 48

4.2 设计模式的概述 49

4.2.1 结构模式 49

4.2.2 行为模式 50

4.2.3 创建型模式 51

4.2.4 设计模式指南 51

4.3 结构模式中的适配器模式 51

4.3.1 名称/其他可用的名称 51

4.3.2 问题 51

4.3.3 解决方法 52

4.3.4 评价 57

4.3.5 使用范围 58

4.3.6 类似的模式 58

4.4 结构模式中的桥梁模式 58

4.4.1 名称/其他可用的名称 58

4.4.2 问题 58

4.4.3 解决方法 59

4.4.4 评价 66

4.4.5 使用范围 67

4.4.6 类似的模式 67

4.5 结构模式中的装饰模式 67

4.5.1 名称/其他可用的名称 67

4.5.2 问题 67

4.5.3 解决方法 68

4.5.4 评价 76

4.5.5 使用范围 77

4.5.6 类似的模式 80

4.6 结构模式中的外观模式 81

4.6.1 名称/其他可用的名称 81

4.6.2 问题 81

4.6.3 解决方法 81

4.6.4 评价 86

4.6.5 使用范围 86

4.6.6 类似的模式 86

4.7 结构模式中的组合模式 87

4.7.1 名称/其他可用的名称 87

4.7.2 问题 87

4.7.3 解决方法 87

4.7.4 评价 95

4.7.5 使用范围 95

4.7.6 类似的模型 97

4.8 结构模式中的代理模式 97

4.8.1 名称/其他可用的名称 97

4.8.2 问题 98

4.8.3 解决方法 98

4.8.4 评价 102

4.8.5 使用范围 102

4.8.6 类似的模式 103

4.9 行为模式中的模板方法模式 104

4.9.1 名称/其他可用的名称 104

4.9.2 问题 104

4.9.3 解决方法 104

4.9.4 使用范围 108

4.9.5 评价 109

4.9.6 类似的模式 109

4.10 行为模式中的命令模式 109

4.10.1 名称/其他可用的名称 109

4.10.2 问题 109

4.10.3 解决方法 110

4.10.4 评价 115

4.10.5 使用范围 116

4.10.6 类似的模式 116

4.11 行为模式中的观察者模式 117

4.11.1 名称/其他可用的名称 117

4.11.2 问题 117

4.11.3 解决方法 117

4.11.4 评价 124

4.11.5 使用范围 124

4.11.6 类似的模式 125

4.12 行为模式中的策略模式 125

4.12.1 名称/其他可用的名称 125

4.12.2 问题 125

4.12.3 解决方法 125

4.12.4 使用范围 129

4.12.5 评价 129

4.12.6 类似的模式 130

4.13 行为模式中的中间者模式 130

4.13.1 名称/其他可用的名称 130

4.13.2 问题 131

4.13.3 解决方法 131

4.13.4 评价 138

4.13.5 使用范围 138

4.13.6 类似的模式 138

4.14 行为模式中的状态模式 139

4.14.1 名称/其他可用的名称 139

4.14.2 问题 139

4.14.3 解决方法 139

4.14.4 使用范围 146

4.14.5 评价 146

4.14.6 类似的模式 146

4.15 行为模式中的角色模式 147

4.15.1 名称/其他可用的名称 147

4.15.2 问题 147

4.15.3 解决方法 148

4.15.4 评价 155

4.15.5 使用范围 155

4.15.6 类似的模式 156

4.16 行为模式中的拜访者模式 156

4.16.1 名称/其他可用的名称 156

4.16.2 问题 156

4.16.3 解决方法 156

4.16.4 评价 169

4.16.5 使用范围 170

4.16.6 类似的模式 171

4.17 行为模式中的迭代器模式 171

4.17.1 名称/其他可用的名称 171

4.17.2 问题 171

4.17.3 解决方法 171

4.17.4 评价 178

4.17.5 使用范围 178

4.17.6 类似的模式 180

4.18 创建型模式中的工厂方法 180

4.18.1 名称/其他可用的名称 180

4.18.2 问题 180

4.18.3 解决方法 181

4.18.4 评价 185

4.18.5 使用范围 185

4.18.6 类似的模式 186

4.19 创建型模式中的抽象工厂模式 186

4.19.1 名称/其他可用的名称 186

4.19.2 问题 186

4.19.3 解决方法 186

4.19.4 评价 195

4.19.5 使用范围 195

4.19.6 类似的模式 196

4.20 创建型模式中的单例模式 196

4.20.1 名称/其他可用的名称 196

4.20.2 问题 196

4.20.3 解决方法 196

4.20.4 评价 204

4.20.5 使用范围 204

4.20.6 类似的模式 204

4.21 创建型模式中的对象池模式 204

4.21.1 名称/其他可用的名称 204

4.21.2 问题 205

4.21.3 解决方法 205

4.21.4 评价 210

4.21.5 使用范围 211

4.21.6 类似的模式 211

4.22 总结 211

4.23 练习 213

第5章 架构模式 216

5.1 分层架构模式 217

5.1.1 名称/其他可用的名称 217

5.1.2 问题 217

5.1.3 解决方法 217

5.1.4 评价 219

5.1.5 使用范围 220

5.1.6 类似的模式 226

5.2 管道和过滤器架构模式 226

5.2.1 名称/其他可用的名称 226

5.2.2 问题 226

5.2.3 解决方法 227

5.2.4 评价 232

5.2.5 使用范围 232

5.2.6 类似的模式 234

5.3 插件架构模式 235

5.3.1 名称/其他可用的名称 235

5.3.2 问题 235

5.3.3 解决方法 235

5.3.4 评价 238

5.3.5 使用范围 239

5.3.6 类似的模式 239

5.3.7 程序例子 240

5.4 中介模式 245

5.4.1 名称/其他可用的名称 245

5.4.2 问题 245

5.4.3 解决方法 246

5.4.4 评价 252

5.4.5 使用范围 252

5.4.6 类似的模式 254

5.4.7 程序例子 255

5.5 面向服务的架构模式 267

5.5.1 名称/其他可用的名称 267

5.5.2 问题 267

5.5.3 解决方法 267

5.5.4 评价 271

5.5.5 使用范围 272

5.5.6 类似的模式 272

5.5.7 SOA的实现 272

5.6 模型-视图-控制器架构模式 291

5.6.1 名称/其他可用的名称 291

5.6.2 问题 291

5.6.3 解决方法 292

5.6.4 评价 299

5.6.5 使用范围 301

5.6.6 类似的模式 301

5.6.7 程序例子 301

5.7 总结 307

5.8 练习 308

参考文献 310