图书介绍

面向对象设计实践指南 Ruby语言描述PDF|Epub|txt|kindle电子书版本下载

面向对象设计实践指南 Ruby语言描述
  • (美)梅茨著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115332455
  • 出版时间:2014
  • 标注页数:208页
  • 文件大小:47MB
  • 文件页数:225页
  • 主题词:计算机网络-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

面向对象设计实践指南 Ruby语言描述PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 面向对象设计1

1.1设计赞歌2

1.1.1设计解决的问题2

1.1.2为何难以更改2

1.1.3实用的设计定义3

1.2设计工具4

1.2.1设计原则4

1.2.2设计模式5

1.3设计行为6

1.3.1设计失败6

1.3.2设计时机7

1.3.3设计评判8

1.4面向对象编程简介10

1.4.1过程式语言10

1.4.2面向对象语言11

1.5小结12

第2章 设计具有单一职责的类13

2.1决定类的内容13

2.1.1将方法分组成类14

2.1.2组织代码以便于更改14

2.2创建具有单一职责的类15

2.2.1示例程序:自行车和齿轮15

2.2.2为何单一职责原则很重要18

2.2.3确定一个类是否具有单一职责19

2.2.4确定何时做出设计决策19

2.3编写拥抱变化的代码20

2.3.1要依赖行为,不依赖数据21

2.3.2全面推行单一职责原则25

2.4最后是真实的轮子需求28

2.5小结30

第3章 管理依赖关系31

3.1理解依赖关系31

3.1.1认识依赖关系32

3.1.2对象间的耦合33

3.1.3其他依赖关系34

3.2编写松耦合的代码35

3.2.1注入依赖关系35

3.2.2隔离依赖关系37

3.2.3移除参数顺序依赖关系40

3.3管理依赖方向45

3.3.1反转依赖关系45

3.3.2选择依赖方向47

3.4小结50

第4章 创建灵活的接口51

4.1理解接口51

4.2定义接口53

4.2.1公共接口53

4.2.2私有接口53

4.2.3职责、依赖关系和接口54

4.3找出公共接口54

4.3.1示例程序:自行车旅游公司55

4.3.2构建意图55

4.3.3使用时序图56

4.3.4请询问“要什么”,别告知“如何做”59

4.3.5寻求上下文独立61

4.3.6信任其他对象62

4.3.7使用消息来发现对象63

4.3.8创建基于消息的应用程序65

4.4编写能展现其(内在)最好面的代码65

4.4.1创建显式接口65

4.4.2善用其他类的公共接口67

4.4.3避免依赖私有接口67

4.4.4最小化上下文67

4.5迪米特法则68

4.5.1定义迪米特法则68

4.5.2违规的后果68

4.5.3避免违规70

4.5.4听从迪米特法则70

4.6小结71

第5章 使用鸭子类型技术降低成本73

5.1理解鸭子类型73

5.1.1鸭子类型概述74

5.1.2让问题复杂些75

5.1.3发现鸭子类型78

5.1.4鸭子类型的后果81

5.2编写依赖于鸭子类型的代码82

5.2.1识别出隐藏的鸭子类型82

5.2.2信任你的鸭子类型84

5.2.3记录好鸭子类型84

5.2.4在鸭子类型之间共享代码85

5.2.5合理选择鸭子类型85

5.3克服对鸭子类型的恐惧86

5.3.1使用静态类型颠覆鸭子类型86

5.3.2静态类型与动态类型87

5.3.3拥抱动态类型88

5.4小结89

第6章 通过继承获得行为91

6.1理解经典的继承91

6.2弄清使用继承的地方92

6.2.1从一个具体类开始92

6.2.2嵌入多种类型94

6.2.3找出嵌入的类型96

6.2.4选择继承96

6.2.5描绘出继承关系98

6.3误用继承98

6.4找出抽象100

6.4.1创建抽象父类100

6.4.2提升抽象行为103

6.4.3从具体分离出抽象105

6.4.4使用模板方法模式107

6.4.5实现所有模板方法109

6.5管理父类与子类之间的耦合110

6.5.1理解耦合111

6.5.2使用钩子消息解耦子类115

6.6小结119

第7章 使用模块共享角色行为121

7.1理解角色121

7.1.1找出角色122

7.1.2组织职责123

7.1.3删除不必要的依赖关系125

7.1.4编写具体代码126

7.1.5提取抽象129

7.1.6查找方法132

7.1.7继承角色行为135

7.2编写可继承的代码136

7.2.1识别出反模式136

7.2.2坚持抽象136

7.2.3重视契约137

7.2.4使用模板方法模式138

7.2.5预先将类解耦138

7.2.6创建浅层结构138

7.3小结139

第8章 组合对象141

8.1 Parts组合成Bicycle141

8.1.1更新Bicycle类141

8.1.2创建Parts层次结构143

8.2组合成Parts对象145

8.2.1创建Part146

8.2.2让Parts对象更像一个数组149

8.3制造Parts152

8.3.1创建PartsFactory153

8.3.2借助PartsFactory154

8.4组合成Bicycle155

8.5继承和组合的抉择159

8.5.1接受继承带来的后果159

8.5.2接受组合带来的后果161

8.5.3选择关系162

8.6小结164

第9章 设计最划算的测试165

9.1意图测试166

9.1.1了解测试的意图166

9.1.2了解测试的内容168

9.1.3了解测试的时机170

9.1.4了解测试的方法171

9.2测试输入消息173

9.2.1删除未使用的接口174

9.2.2证明公共接口175

9.2.3隔离测试对象176

9.2.4注入使用类的依赖关系178

9.2.5将依赖关系注入成角色180

9.3测试私有方法184

9.3.1在测试过程中忽略私有方法184

9.3.2从测试类里移除私有方法185

9.3.3选择测试私有方法185

9.4测试输出消息186

9.4.1忽略查询消息186

9.4.2证明命令消息187

9.5测试鸭子类型189

9.5.1测试角色189

9.5.2用角色测试验证测试替身194

9.6测试继承代码198

9.6.1指定继承接口198

9.6.2指定子类责任201

9.6.3测试独特行为204

9.7小结207

后记208

热门推荐