《OOD启思录》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)里尔著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2011
  • ISBN:9787115265432
  • 页数:358 页
图书介绍:本书提供了改进面向对象设计(OOD)的真知灼见,总结出了60多条OOD的指导原则,涵盖了从类到对象到面向对象物理设计的重要主题。通过本书,读者可以理解经验原则和“设计模式”这一流行概念之间的相互作用,并进一步提升对OOD的认识和程序开发水平。

第1章 面向对象编程的动因 1

1.1革命家、改革家与面向对象范型 1

1.2 Frederick Brooks观点:非根本复杂性与根本复杂性 3

1.3瀑布模型 4

1.4迭代模型 5

1.5构造原型:相同语言与不同语言 6

1.6软件复用性 7

1.7优秀设计者阶层 7

术语表 8

第2章 类和对象:面向对象范型的建材 11

2.1类和对象导引 11

2.2消息和方法 14

2.3类耦合与内聚 18

2.4动态语义 20

2.5抽象类 22

2.6角色与类 23

术语表 24

经验原则小结 25

第3章 应用程序布局:面向动作与面向对象 27

3.1应用程序的不同布局 27

3.2面向动作范型何时适用 29

3.3问题:全能类(行为表现) 30

3.4系统功能不良分布的另一个例子 34

3.5问题:全能类(数据表现) 36

3.6问题:泛滥成灾的类 38

3.7代理类的角色 42

3.8用途考察:单独实体和控制类 44

术语表 46

经验原则小结 46

第4章 类和对象的关系 49

4.1类和对象关系导引 49

4.2使用关系 49

4.3实现使用关系的6种不同方法 50

4.4使用关系的经验原则 52

4.5精确调整两个类之间的协作量 53

4.6包含关系 55

4.7类之间的语义约束 58

4.8属性与被包含的类 60

4.9包含关系的更多经验原则 61

4.10使用和包含的关系 63

4.11值包含与引用包含 64

术语表 65

经验原则小结 66

第5章 继承关系 69

5.1继承关系导引 69

5.2在派生类中覆写基类方法 73

5.3在基类中使用保护区域 75

5.4继承层次结构的宽度和深度 77

5.5 C++的划分:私有、保护和公有继承 78

5.6一个现实世界中的特化例子 80

5.7经验原则:寻求设计复杂性和灵活性的平衡 81

5.8一个现实世界中的泛化例子 84

5.9多态机制 85

5.10把继承作为复用机制的一个问题 89

5.11用继承实现中断驱动架构的方案 93

5.12继承层次结构与属性 94

5.13混淆:继承的需求与对象动态语义 96

5.14用继承来隐藏类的实现 98

5.15 把对象误当作继承类 99

5.16把需概括对象误作需在运行时创建类 100

5.17在派生类中屏蔽基类方法的尝试 103

5.18对象可选部分的实现 106

5.19没有最优解的问题 108

5.20复用组件与复用框架 112

术语表 115

经验原则小结 116

第6章 多重继承 119

6.1多重继承导引 119

6.2多重继承的常见误用 120

6.3多重继承的正当使用 122

6.4不支持多重继承的语言中的非根本复杂性 123

6.5用到多重继承的框架 124

6.6运用多重继承:设计mixin 125

6.7 DAG多重继承 126

6.8可选包含的不良实现造成的不当DAG多重继承 127

术语表 128

经验原则小结 128

第7章 关联关系 131

7.1关联导引 131

7.2用引用属性实现关联 132

7.3用第三方类实现关联 134

7.4在包含关系和关联关系间取舍 135

术语表 136

经验原则小结 137

第8章 与特定类相关的数据及行为 139

8.1类相关与对象相关数据及行为导引 139

8.2用元类来表示类相关数据及行为 140

8.3用语言层面关键字来实现类相关与对象相关数据及行为 141

8.4 C++中的元类 141

8.5有用的抽象类,但不是基类 143

术语表 144

经验原则小结 145

第9章 面向对象物理设计 147

9.1面向对象逻辑设计和物理设计的角色 147

9.2创建面向对象包装器 150

9.3面向对象系统中的持久化 153

9.4面向对象应用程序中的内存管理问题 156

9.5可复用组件的最小公有接口 157

9.6实现安全的浅拷贝 161

9.7并行面向对象编程 164

9.8用非面向对象语言实现面向对象设计 165

术语表 167

经验原则小结 168

第10章 经验原则和模式的关系 169

10.1经验原则与模式 169

10.2设计变换模型的传递性 171

10.3设计变换模式的自反性 174

10.4其他设计变换模式 176

10.5未来研究 180

第11章 在面向对象设计中使用经验原则 183

11.1 ATM问题 183

11.2选择方法学 185

11.3产生ATM对象模型的第一次尝试 186

11.4给我们的对象模型增加行为 188

11.5非根本复杂性带来的显式情况分析 192

11.6在不同地址对象间传递消息 193

11.7交易处理 194

11.8回到ATM的领域 194

11.9其他杂类问题 196

11.10小结 198

附录A经验原则总结 201

附录B C++中的内存泄漏 207

附录C C++实例精选 229

本书中引用到的其他图书 355

参考文献 357