《Ruby 设计模式》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)Russ Olsen著,谈熠,陈熙译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2009
  • ISBN:9787111251200
  • 页数:257 页
图书介绍:

本书的赞誉 2

译者序 2

序 2

前言 2

致谢 2

第一部分 设计模式和Ruby 2

第1章 使用设计模式创建更好的程序 2

1.1 四人组 2

1.2 模式的模式 3

1.2.1 把变和不变的事物分开 3

1.2.2 针对接口编程而不对实现编程 3

1.2.3 组合优先于继承 5

1.2.4 委托、委托、委托 8

1.2.5 你不会用到它 9

1.3 23种模式中的14种 10

1.4 Ruby中的设计模式 12

第2章 从Ruby起步 13

2.1 交互式Ruby 13

2.2 说helloworld 14

2.3 变量 15

2.4 Fixnums和Bignums 17

2.5 浮点数 18

2.6 这里没有原始类型 18

2.7 但是有时没有对象 19

2.8 true、false和til 19

2.9 判定、判定 21

2.10 循环 22

2.11 更多关于字符串 24

2.12 符号 27

2.13 数组 27

2.14 散列 29

2.15 正则表达式 29

2.16 自己的类 30

2.17 获取一个实例变量 31

2.18 对象问:我是谁 33

2.19 继承、子类和超类 34

2.20 参数选项 35

2.21 模组 36

2.22 异常 38

2.23 线程 39

2.24 管理分散的源文件 40

2.25 本章回顾 41

第二部分 Ruby中的模式 44

第3章 使用模板方法变换算法 44

3.1 迎接现实中的挑战 45

3.2 将不变的部分独立出来 46

3.3 探究模板方法模式 48

3.4 钩子方法 49

3.5 但是类型声明都去哪里了 51

3.6 类型、安全和灵活性 52

3.7 单元测试并非可有可无 53

3.8 使用和滥用模板方法模式 55

3.9 模板方法模式的实际应用 56

3.10 本章回顾 57

第4章 使用策略替换算法 58

4.1 委托、委托、还是委托 58

4.2 在策略和环境中共享数据 60

4.3 再说鸭子类型 62

4.4 Proc和代码块 63

4.5 快速而随性的策略对象 66

4.6 使用和滥用策略模式 68

4.7 策略模式的实际应用 68

4.8 本章回顾 69

第5章 通过观察器保持协调 71

5.1 随时待命 71

5.2 更好的随时待命方法 73

5.3 提取可被观察能力支持的代码 75

5.4 使用代码块作为观察器 78

5.5 观察器模式的异体 79

5.6 使用和滥用观察器模式 80

5.7 观察器模式的实际应用 81

5.8 本章回顾 83

第6章 使用组合模式将各部分组成整体 84

6.1 整体和部分 84

6.2 创建组合 86

6.3 使用运算符将组合模式打扮整齐 89

6.4 给予数组的组合类 90

6.5 一种不方便的差异 91

6.6 给各层次指明方向 91

6.7 使用和滥用组合模式 93

6.8 组合模式的实际应用 94

6.9 本章回顾 96

第7章 通过迭代器遍历集合 97

7.1 外部迭代器 97

7.2 内部迭代器 99

7.3 比较内部迭代器和外部迭代器 100

7.4 无可比拟的Enumerable 101

7.5 使用和滥用迭代器模式 103

7.6 迭代器的实际应用 104

7.7 本章回顾 107

第8章 使用命令模式完成任务 109

8.1 子类大泛滥 109

8.2 一个更简便的方法 110

8.3 代码块即命令 111

8.4 用于记录操作的命令 112

8.5 使用命令取消一个操作 115

8.6 命令队列 117

8.7 使用和滥用命令模式 118

8.8 命令模式的实际应用 119

8.8.1 ActiveRecord数据移植 119

8.8.2 Madeleine 119

8.9 本章回顾 123

第9章 使用适配器填补空隙 124

9.1 软件适配器 124

9.2 几乎错过 127

9.3 适配器的另一种选择 128

9.4 修改单个实例 129

9.5 适配还是修改 131

9.6 使用和滥用适配器模式 131

9.7 适配器模式的实际应用 132

9.8 本章回顾 132

第10章 通过代理来到对象面前 134

10.1 使用代理进行拯救 134

10.2 保护代理 136

10.3 远程代理 137

10.4 虚拟代理让人变懒 138

10.5 取消代理的苦差事 140

10.5.1 消息传递和方法 140

10.5.2 method_missing方法 141

10.5.3 发送消息 142

10.5.4 无痛的代理 142

10.6 使用和滥用代理 145

10.7 代理模式的实际应用 146

10.8 本章回顾 147

第11章 使用装饰器改善对象 148

11.1 装饰器:丑陋代码的解药 148

11.2 正式装饰 153

11.3 减轻代理的郁闷 154

11.4 实现装饰器模式的另一种动态方法 155

11.4.1 装饰方法 155

11.4.2 使用模组进行装饰 155

11.5 使用和滥用装饰器模式 156

11.6 装饰器的实际应用 157

11.7 本章回顾 158

第12章 使用单例确保仅有一个 159

12.1 一个对象,全局访问 159

12.2 类变量和类方法 159

12.2.1 类变量 159

12.2.2 类方法 160

12.3 Ruby单例应用的第一次尝试 162

12.3.1 管理单个实例 163

12.3.2 确保只有一个 163

12.4 单例模组 164

12.5 勤性单例和惰性单例 165

12.6 其他单例模式的实现方法 165

12.6.1 使用全局变量作为单例 165

12.6.2 使用类作为单例 166

12.6.3 使用模组作为单例 167

12.7 安全带还是拘束衣 168

12.8 使用和滥用单例模式 169

12.8.1 实际上就是全局变量 169

12.8.2 到底需要多少这样的单例 170

12.8.3 在需要知道的基础上的单例 170

12.8.4 减轻测试的郁闷 172

12.9 单例模式的实际应用 173

12.10 本章回顾 173

第13章 使用工厂模式挑选正确的类 174

13.1 一种不同的鸭子类型 174

13.2 模板方法再露一手 176

13.3 参数化的工厂方法 178

13.4 类也是对象 181

13.5 坏消息:你的程序搞大了 182

13.6 对象创建的组合 183

13.7 再论类就是对象 185

13.8 协调名字 186

13.9 使用和滥用工厂模式 187

13.10 工厂模式的实际应用 188

13.11 本章回顾 189

第14章 通过生成器简化对象创建 190

14.1 制造计算机 190

14.2 多态生成器 193

14.3 生成器能保证产生健全的对象 196

14.4 可重用的生成器 196

14.5 使用魔术方法制作更好的生成器 197

14.6 使用和滥用生成器模式 198

14.7 生成器模式的实际应用 198

14.8 本章回顾 199

第15章 使用解释器组建系统 200

15.1 用以完成任务的正确语言 200

15.2 构建一个解释器 201

15.3 一个文件查找解释器 202

15.3.1 查找所有文件 203

15.3.2 根据文件名查找文件 203

15.3.3 大文件和可写文件 204

15.3.4 加入Not、And和Or的更复杂的检索 205

15.4 创建AST 207

15.4.1 一个简单的分析器 207

15.4.2 没有分析器的解释器 209

15.4.3 让XML和YAML进行分析工作 210

15.4.4 为更复杂的分析器使用Racc 211

15.4.5 让Ruby作分析 211

15.5 使用和滥用解释器模式 211

15.6 解释器模式的实际应用 212

15.7 本章回顾 213

第三部分 Ruby的设计模式 216

第16章 采用域指定语言打开系统 216

16.1 特定语言的域 216

16.2 备份文件的DSL 217

16.3 是数据文件,更是程序 217

16.4 构建PackRat 218

16.5 将DSL合成一体 220

16.6 评估PackRat 221

16.7 改进PackRat 222

16.8 使用和滥用内部DSL 224

16.9 内部DSL的实际应用 225

16.10 本章回顾 226

第17章 使用元编程创建自定义对象 227

17.1 通过方法度身定制的对象和方法 227

17.2 通过模块自定义对象和模块 229

17.3 召唤出崭新的方法 230

17.4 到对象的内部看看 233

17.5 使用和滥用元编程 234

17.6 元编程的实际应用 235

17.7 本章回顾 238

第18章 惯例优于配置 239

18.1 一个优秀的用户界面—对于开发者 240

18.1.1 预期需求 240

18.1.2 让他们说一次 240

18.1.3 提供一个模板 241

18.2 一个消息中转器 241

18.3 选择适配器 243

18.4 载入类 244

18.5 增加一些安全性 246

18.6 帮助用户开始使用 248

18.7 评估消息中转器 249

18.8 使用和滥用惯例优于配置模式 250

18.9 惯例优于配置的实际应用 250

18.10 本章回顾 250

第19章 总结 252

附录 254