《对象设计 角色、责任和协作》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)布罗克(Brock,R.W.),(美)麦基恩(McKean,A.)著;倪硕,陈师译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2006
  • ISBN:7115146659
  • 页数:313 页
图书介绍:本书通过大量例子,描述了一幅对象驱动的和谐设计场景。

1.1 对象机器 1

第1章 设计概念 1

1.2 角色 3

1.3 对象角色构造型(role stereotypes) 4

1.4 角色、责任和协作 5

1.5 对象契约 7

1.6 领域对象 8

1.7 与应用相关的特定对象 9

1.8 接口 10

1.9 类 11

1.10 复合 14

1.12 对象的组织 15

1.11 继承 15

1.13 组件 16

1.14 模式 17

1.14.1 将Double Dispatch模式应用于特定问题 18

1.14.2 运用模式的现实利益 22

1.15 应用框架 22

1.16 体系结构 24

1.17 体系结构的风格 25

1.17.1 集中式控制 26

1.17.2 分散式控制:没有控制中心 27

1.17.3 委托式控制 27

1.17.4 测试互动:一个层次体系的例子 29

1.17.5 定位层次中的对象 30

1.19 小结 31

1.18 设计描述 31

1.20 进一步阅读 32

第2章 责任驱动设计 33

2.1 观察、描述和设计的过程 34

2.1.1 启动生产过程:项目的定义和计划 37

2.1.2 搭建舞台:初期的描述 38

2.1.3 实施开发:设计 39

2.1.4 从多视角“观察” 41

2.2 撰写草稿:分析描述 41

2.2.1 用法描述 42

2.2.3 术语表 48

2.2.2 其他规范 48

2.2.4 概念上的对象 49

2.3 铸造特性:挖掘设计 50

2.3.1 CRC卡 51

2.3.2 创造:运用模式 54

2.3.3 寻求解决方案 57

2.3.4 在思想与细节之间跳跃 58

2.4 调整产品:精练设计 59

2.4.1 弹性和可扩展性设计 60

2.4.2 可靠性设计 61

2.4.3 使设计具有可预见性、一致性,并易于理解 62

2.5 小结 62

2.6 进一步阅读 63

第3章 发现对象 65

3.1 发现策略 66

3.2 找寻对象、角色和类 67

3.3 为什么需要一个设计提纲 68

3.4 寻找的策略 71

3.5 名字到底有何内涵 73

3.6 描述候选对象 78

3.7 特征化候选对象 82

3.8 连接候选对象 83

3.9 寻找共同背景 85

3.10 审核已有对象,寻找其他的对象 88

3.11 小结 89

3.12 进一步阅读 90

第4章 责任 91

4.1 责任是什么 91

4.2 责任来自哪里 93

4.3 责任分配策略 104

4.3.1 记录责任 105

4.3.2 进行初始分配 107

4.3.3 解除困扰 116

4.4 实现对象和责任 118

4.5 检测对象的质量 122

4.6 小结 123

4.7 进一步阅读 123

5.1 什么是对象协作 125

第5章 协作 125

5.1.1 为协作做准备 126

5.1.2 记录候选协作 126

5.2 “Speak for Me”软件的设计故事 128

5.3 协作的选择 128

5.3.1 谁有控制权 130

5.3.2 对象之间的互信度应为多少 130

5.4 确定协作的策略 132

5.4.1 审视个体对象的角色:构造型隐含协作 133

5.4.2 审视个体责任:它们隐含着协作 139

5.4.3 为复杂责任设计细节 140

5.4.4 为特定的任务设计协作 141

5.4.5 确认可用的模式 142

5.4.6 确认体系结构怎样影响协作 143

5.4.7 解决协作中存在的问题 144

5.5 模拟协作 148

5.5.1 计划编制一个模拟 148

5.5.2 执行一个模拟 150

5.6 设计优良的协作 153

5.7 让协作成为可能 156

5.7.1 建立连接的指导方针 157

5.7.2 设计可靠的协作 159

5.8 何时结束 160

5.10 进一步阅读 161

5.9 小结 161

第6章 控制风格 163

6.1 什么是控制风格 163

6.2 可选的控制风格 164

6.3 衡量各方案利弊 165

6.3.1 集中式控制 165

6.3.2 委派式控制 166

6.3.3 控制决策的局限性 167

6.4 设计控制中心 170

6.5 案例分析:外部用户事件的控制风格 171

6.5.1 MessageBuilder对象的集中式控制 174

6.5.3 抽取决策权 183

6.5.2 将决策重构入MessageBuilder对象的状态方法中 183

6.5.4 委派更多责任 186

6.5.5 为邻居对象设计控制风格 188

6.5.6 设计类似的控制中心:具有一致性 191

6.6 小结 197

第7章 描述协作 199

7.1 讲述协作的提纲 199

7.2 讲述协作的策略 200

7.3 确立作用范围、深度和基调 201

7.4 列出所要包含的内容 202

7.5 决定细节层次 202

7.5.1 显示一个鸟瞰视图 203

7.5.2 只显示协作者 205

7.5.3 显示协作者之间的互动顺序 207

7.5.4 显示深度视图 209

7.5.5 显示焦点互动 211

7.5.6 显示实现视图 212

7.5.7 显示如何改编协作 212

7.5.8 UML图的不足之处 215

7.6 选择适当的形式 218

7.7 讲述、绘制以及描述:指导方针 219

7.8 组织你的工作 224

7.8.1 加强重视 224

7.8.2 展开提纲 225

7.8.3 了解基础内容 226

7.8.4 进行总结 227

7.9 保留提纲 227

7.10 小结 228

7.11 进一步阅读 228

第8章 可靠的协作 231

8.1 理解失败的后果 231

8.2 增加系统的可靠性 233

8.3 确定协作在何处可被信任 234

8.3.1 可信任与不可信协作之间的比较 234

8.3.2 信任的内涵 236

8.4 确认哪些协作需要可靠性 237

8.4.2 区分异常和错误 238

8.4.1 用例说明了什么 238

8.4.3 对象异常与用例异常 239

8.4.4 对象异常基础 240

8.4.5 异常和错误处理策略 244

8.4.6 确定由谁负责 246

8.5 设计一种解决方案 248

8.5.1 积极探索异常条件 248

8.5.2 限制目标范围 249

8.5.3 记录异常处理策略 251

8.6 建立异常处理设计文档 252

8.7 回顾你的设计 257

8.9 进一步阅读 259

8.8 小结 259

第9章 弹性 261

9.1 弹性意味着什么 261

9.2 弹性的程度 263

9.3 弹性解决方案的效果 265

9.4 明确弹性需求 266

9.5 记录变化 269

9.6 变化及其实现 272

9.6.1 确定一个变化的影响力 272

9.6.2 探讨实现弹性的策略 273

9.6.3 使用模板和HOOK机制来支持变化 273

9.7.1 以策略模式改变对象的行为 281

9.7 模式在弹性设计中的角色 281

9.7.2 使用中介者隐藏交互对象 282

9.7.3 使用适配器安装一个预定义对象或系统 282

9.7.4 模式是如何增加弹性的 284

9.8 怎样建立弹性设计的文档 284

9.8.1 为读者考虑 289

9.8.2 描述如何做出一个变化 290

9.9 修改遗留系统的设计 292

9.10 小结 294

9.11 进一步阅读 294

第10章 关于设计 297

10.1 软件设计的本质 297

10.2 解决核心设计问题 298

10.3 确定问题框架(Frame the Problem) 299

10.4 处理启示性设计问题 302

10.4.1 一个管理共享信息的例子 302

10.4.2 一个连接问题的复杂性例子 303

10.4.3 难度永远不会降低的设计问题 304

10.4.4 启示性问题是否可以“另类” 305

10.5 解决启示性问题的策略 306

10.5.1 重新定义问题 307

10.5.2 合成一个解决方案 308

10.6 处理剩余问题 309

10.7 设计职责 310

10.8 进一步阅读 313