面向对象的思考过程(原书第5版) | PDF下载|ePub下载
类别: 计算机
作者:[美] Gayle Laakmann McDowell
出版社: 人民邮电出版社
原作名: Cracking the coding interview:150 programming questions and solutions,fifth edition
译者:李琳骁/漆犇
出版年: 2013-11
页数: 372
定价: 59.00元
装帧: 平装
ISBN: 9787115332912
出版社: 人民邮电出版社
原作名: Cracking the coding interview:150 programming questions and solutions,fifth edition
译者:李琳骁/漆犇
出版年: 2013-11
页数: 372
定价: 59.00元
装帧: 平装
ISBN: 9787115332912
内容简介 · · · · · ·
本书是一部独具特色的面向对象技术著作。书中结合代码示例生动透彻地讲述了面向对象思想的精髓,让读者真正学会以对象方式进行思考。
本书共15章,在结构上可以分为两部分:第壹部分包括第1~10章,探讨面向对象的基本概念,比如封装、多态、继承等;第二部分包括第11~15章,专注于将这些概念应用于一些通用的面向对象技术中,并结合了一些实用的应用程序。
目录 · · · · · ·
译者序
前言
致谢
关于作者
第1章 面向对象的概念简介1
1.1 基本概念1
1.2 对象及遗留系统2
1.3 过程式编程与面向对象编程对比4
1.4 由面向过程开发过渡到面向对象开发7
1.4.1 过程式编程7
1.4.2 面向对象编程8
1.5 什么是对象8
1.5.1 对象数据8
1.5.2 对象行为9
1.6 什么是类13
1.6.1 创建对象13
1.6.2 属性15
1.6.3 方法15
1.6.4 消息15
1.7 使用类图作为可视化工具16
1.8 封装和数据隐藏16
1.8.1 接口17
1.8.2 实现18
1.8.3 接口/实现范式的一个真实示例18
1.8.4 接口/实现范式的模型19
1.9 继承20
1.9.1 超类和子类21
1.9.2 抽象21
1.9.3 is-a关系23
1.10 多态性24
1.11 组合27
1.11.1 抽象27
1.11.2 has-a关系28
1.12 本章小结28
第2章 如何以对象的方式进行思考29
2.1 清楚接口和实现之间的区别30
2.1.1 接口32
2.1.2 实现32
2.1.3 一个接口/实现示例33
2.2 使用抽象思维设计接口37
2.3 尽可能提供小化的用户接口39
2.3.1 确定用户39
2.3.2 对象行为40
2.3.3 环境约束40
2.3.4 识别公共接口40
2.3.5 识别实现41
2.4 本章小结42
2.5 参考文献42
第3章 更多面向对象概念43
3.1 构造函数43
3.1.1 什么是构造函数调用44
3.1.2 构造函数中包含什么44
3.1.3 默认构造函数45
3.1.4 使用多个构造函数46
3.1.5 设计构造函数49
3.2 错误处理50
3.2.1 忽略问题50
3.2.2 检查问题并中止应用程序50
3.2.3 检查问题并试图恢复51
3.2.4 抛出异常51
3.3 作用域的重要性54
3.3.1 局部属性?54
3.3.2 对象属性55
3.3.3 类属性57
3.4 操作符重载58
3.5 多重继承59
3.6 对象操作60
3.7 本章小结62
3.8 参考文献62
第4章 类的剖析63
4.1 类名63
4.2 注释65
4.3 属性65
4.4 构造函数67
4.5 访问器69
4.6 公共接口方法71
4.7 私有实现方法72
4.8 本章小结72
4.9 参考文献73
第5章 类设计指导75
5.1 对现实世界系统建模75
5.2 识别公共接口76
5.2.1 小化公共接口77
5.2.2 隐藏实现78
5.3 设计健壮的构造函数(以及析构函数)78
5.4 在类中设计错误处理79
5.4.1 记录类并使用注释80
5.4.2 构建可以合作的对象80
5.5 设计时请考虑重用81
5.6 设计时请考虑可扩展性81
5.6.1 保持命名具有描述性82
5.6.2 抽象不可移植的代码82
5.6.3 提供一种方式来复制和比较对象83
5.6.4 保持尽可能小的作用域83
5.7 设计时请考虑可维护性84
5.7.1 在开发过程中使用迭代85
5.7.2 测试接口85
5.8 使用对象持久化87
5.9 本章小结89
5.10 参考文献89
第6章 使用对象进行设计91
6.1 设计指导91
6.1.1 进行正确的分析95
6.1.2 编写工作陈述文档95
6.1.3 收集需求95
6.1.4 开发系统原型96
6.1.5 识别类96
6.1.6 确定每个类的职责96
6.1.7 确定类之间如何协作96
6.1.8 创建类模型来描述系统97
6.1.9 在代码中创建用户接口原型97
6.2 对象包装97
6.2.1 结构化代码98
6.2.2 包装结构化代码99
6.2.3 包装不可移植的代码101
6.2.4 包装已有类102
6.3 本章小结103
6.4 参考文献103
第7章 精通继承和组合105
7.1 重用对象105
7.2 继承107
7.2.1 泛化和特化109
7.2.2 设计决策110
7.3 组合112
7.4 为什么封装是面向对象的本质115
7.4.1 继承如何减弱封装115
7.4.2 关于多态性的一个具体例子118
7.4.3 对象职责118
7.4.4 抽象类、虚方法和协议122
7.5 本章小结123
7.6 参考文献124
第8章 框架和重用:使用接口和抽象类进行设计125
8.1 代码:重用还是不重用125
8.2 什么是框架126
8.3 什么是契约128
8.3.1 抽象类129
8.3.2 接口131
8.3.3 综合运用133
8.3.4 编译器佐证136
8.3.5 创建契约137
8.3.6 系统插件139
8.4 一个电子商务示例139
8.4.1 一个电子商务问题140
8.4.2 非重用方式141
8.4.3 电子商务解决方案143
8.4.4 UML对象模型143
8.5 本章小结147
8.6 参考文献148
第9章 创建对象及面向对象设计149
9.1 组合关系150
9.2 分阶段构建151
9.3 组合类型153
9.3.1 聚合153
9.3.2 联合154
9.3.3 同时使用联合和聚合155
9.4 避免依赖156
9.5 基数157
9.5.1 多个对象联合158
9.5.2 可选的联合160
9.6 一个综合性示例160
9.7 本章小结161
9.8 参考文献162
第10章 设计模式163
10.1 为什么使用设计模式164
10.2 Smalltalk的模型/视图/控制器165
10.3 设计模式类型167
10.3.1 创建型模式?167
10.3.2 结构型模式171
10.3.3 行为型模式174
10.4 反模式175
10.5 本章小结176
10.6 参考文献177
第11章 避免依赖和高度耦合的类179
11.1 继承、组合和依赖注入181
11.1.1 继承182
11.1.2 组合183
11.1.3 依赖注入186
11.2 本章小结189
11.3 参考文献189
第12章 面向对象设计的SOLID原则191
12.1 面向对象设计的SOLID原则概述192
12.1.1 SRP:单一职责原则192
12.1.2 OCP:开闭原则196
12.1.3 LSP:里氏替换原则198
12.1.4 ISP:接口隔离原则201
12.1.5 DIP:依赖倒置原则202
12.2 本章小结208
12.3 参考文献208
· · · · · ·
前言
致谢
关于作者
第1章 面向对象的概念简介1
1.1 基本概念1
1.2 对象及遗留系统2
1.3 过程式编程与面向对象编程对比4
1.4 由面向过程开发过渡到面向对象开发7
1.4.1 过程式编程7
1.4.2 面向对象编程8
1.5 什么是对象8
1.5.1 对象数据8
1.5.2 对象行为9
1.6 什么是类13
1.6.1 创建对象13
1.6.2 属性15
1.6.3 方法15
1.6.4 消息15
1.7 使用类图作为可视化工具16
1.8 封装和数据隐藏16
1.8.1 接口17
1.8.2 实现18
1.8.3 接口/实现范式的一个真实示例18
1.8.4 接口/实现范式的模型19
1.9 继承20
1.9.1 超类和子类21
1.9.2 抽象21
1.9.3 is-a关系23
1.10 多态性24
1.11 组合27
1.11.1 抽象27
1.11.2 has-a关系28
1.12 本章小结28
第2章 如何以对象的方式进行思考29
2.1 清楚接口和实现之间的区别30
2.1.1 接口32
2.1.2 实现32
2.1.3 一个接口/实现示例33
2.2 使用抽象思维设计接口37
2.3 尽可能提供小化的用户接口39
2.3.1 确定用户39
2.3.2 对象行为40
2.3.3 环境约束40
2.3.4 识别公共接口40
2.3.5 识别实现41
2.4 本章小结42
2.5 参考文献42
第3章 更多面向对象概念43
3.1 构造函数43
3.1.1 什么是构造函数调用44
3.1.2 构造函数中包含什么44
3.1.3 默认构造函数45
3.1.4 使用多个构造函数46
3.1.5 设计构造函数49
3.2 错误处理50
3.2.1 忽略问题50
3.2.2 检查问题并中止应用程序50
3.2.3 检查问题并试图恢复51
3.2.4 抛出异常51
3.3 作用域的重要性54
3.3.1 局部属性?54
3.3.2 对象属性55
3.3.3 类属性57
3.4 操作符重载58
3.5 多重继承59
3.6 对象操作60
3.7 本章小结62
3.8 参考文献62
第4章 类的剖析63
4.1 类名63
4.2 注释65
4.3 属性65
4.4 构造函数67
4.5 访问器69
4.6 公共接口方法71
4.7 私有实现方法72
4.8 本章小结72
4.9 参考文献73
第5章 类设计指导75
5.1 对现实世界系统建模75
5.2 识别公共接口76
5.2.1 小化公共接口77
5.2.2 隐藏实现78
5.3 设计健壮的构造函数(以及析构函数)78
5.4 在类中设计错误处理79
5.4.1 记录类并使用注释80
5.4.2 构建可以合作的对象80
5.5 设计时请考虑重用81
5.6 设计时请考虑可扩展性81
5.6.1 保持命名具有描述性82
5.6.2 抽象不可移植的代码82
5.6.3 提供一种方式来复制和比较对象83
5.6.4 保持尽可能小的作用域83
5.7 设计时请考虑可维护性84
5.7.1 在开发过程中使用迭代85
5.7.2 测试接口85
5.8 使用对象持久化87
5.9 本章小结89
5.10 参考文献89
第6章 使用对象进行设计91
6.1 设计指导91
6.1.1 进行正确的分析95
6.1.2 编写工作陈述文档95
6.1.3 收集需求95
6.1.4 开发系统原型96
6.1.5 识别类96
6.1.6 确定每个类的职责96
6.1.7 确定类之间如何协作96
6.1.8 创建类模型来描述系统97
6.1.9 在代码中创建用户接口原型97
6.2 对象包装97
6.2.1 结构化代码98
6.2.2 包装结构化代码99
6.2.3 包装不可移植的代码101
6.2.4 包装已有类102
6.3 本章小结103
6.4 参考文献103
第7章 精通继承和组合105
7.1 重用对象105
7.2 继承107
7.2.1 泛化和特化109
7.2.2 设计决策110
7.3 组合112
7.4 为什么封装是面向对象的本质115
7.4.1 继承如何减弱封装115
7.4.2 关于多态性的一个具体例子118
7.4.3 对象职责118
7.4.4 抽象类、虚方法和协议122
7.5 本章小结123
7.6 参考文献124
第8章 框架和重用:使用接口和抽象类进行设计125
8.1 代码:重用还是不重用125
8.2 什么是框架126
8.3 什么是契约128
8.3.1 抽象类129
8.3.2 接口131
8.3.3 综合运用133
8.3.4 编译器佐证136
8.3.5 创建契约137
8.3.6 系统插件139
8.4 一个电子商务示例139
8.4.1 一个电子商务问题140
8.4.2 非重用方式141
8.4.3 电子商务解决方案143
8.4.4 UML对象模型143
8.5 本章小结147
8.6 参考文献148
第9章 创建对象及面向对象设计149
9.1 组合关系150
9.2 分阶段构建151
9.3 组合类型153
9.3.1 聚合153
9.3.2 联合154
9.3.3 同时使用联合和聚合155
9.4 避免依赖156
9.5 基数157
9.5.1 多个对象联合158
9.5.2 可选的联合160
9.6 一个综合性示例160
9.7 本章小结161
9.8 参考文献162
第10章 设计模式163
10.1 为什么使用设计模式164
10.2 Smalltalk的模型/视图/控制器165
10.3 设计模式类型167
10.3.1 创建型模式?167
10.3.2 结构型模式171
10.3.3 行为型模式174
10.4 反模式175
10.5 本章小结176
10.6 参考文献177
第11章 避免依赖和高度耦合的类179
11.1 继承、组合和依赖注入181
11.1.1 继承182
11.1.2 组合183
11.1.3 依赖注入186
11.2 本章小结189
11.3 参考文献189
第12章 面向对象设计的SOLID原则191
12.1 面向对象设计的SOLID原则概述192
12.1.1 SRP:单一职责原则192
12.1.2 OCP:开闭原则196
12.1.3 LSP:里氏替换原则198
12.1.4 ISP:接口隔离原则201
12.1.5 DIP:依赖倒置原则202
12.2 本章小结208
12.3 参考文献208
· · · · · ·
发表回复
要发表评论,您必须先登录。