面向对象开发技术 / “十四五”高等学校计算机教育新形态一体化系列教材
¥56.00定价
作者: 何伟,崔立真,董国庆等
出版时间:2024-11
出版社:中国铁道出版社
- 中国铁道出版社
- 9787113312596
- 1-1
- 531542
- 16开
- 2024-11
- 计算机类
- 本科
内容简介
本书为“十四五”高等学校计算机教育新形态一体化系列教材之一,系统地讲解面向对象开发的思 想、概念、机制和方法,包括:面向对象技术的起源和发展、主要特征以及面向对象技术在编程语言中 的体现和实现机制;面向对象复用技术、建模技术、设计模式、设计原则;构件开发与服务计算技术、 产业界流行的云服务架构、微服务架构等所蕴含的面向对象思想和解决方案。
本书适合作为高等学校计算机科学与技术、软件工程等专业的学生学习面向对象的架构分析、软件 设计、程序实现技术课程的教材,也可供从事软件工程和系统分析、设计、开发等相关工作的科研、工 程人员参考。
本书适合作为高等学校计算机科学与技术、软件工程等专业的学生学习面向对象的架构分析、软件 设计、程序实现技术课程的教材,也可供从事软件工程和系统分析、设计、开发等相关工作的科研、工 程人员参考。
目录
第1章 绪论
1.1 面向对象技术的发展1
1.2 面向对象思想的理解2
1.2.1 一个现实世界的例子3
1.2.2 代理和责任3
1.2.3 抽象4
1.2.4 技术特点总结4
1.3 面向对象软件工程5
1.4 面向对象技术特征5
1.5 面向对象编程语言6
1.6 程序设计范式8
1.6.1 面向机器编程8
1.6.2 面向过程编程8
1.6.3 结构化程序设计9
1.6.4 面向对象编程9
1.6.5 函数式编程9
1.6.6 其他编程范式10
小结10
思考与练习20
第2章 面向对象基本特征
2.1 面向对象编程基本概念12
2.1.1 对象的概念12
2.1.2 对象的特点13
2.1.3 对象标识13
2.1.4 方法14
2.1.5 消息14
2.1.6 对象持久化.15
2.2 对象的概念和特性12
2.3 信息隐藏(封装)15
2.4 复合对象16
2.5 类的概念和特性16
2.5.1 类的概念16
2.5.2 类的性质17
2.5.3 类和型17
2.5.4 类的实例18
2.5.5 契约与责任18
2.6 抽象性19
2.7 多态性20
小结20
第3章 类
3.1 类的定义21
3.1.1 类定义的要素22
3.1.2 可视性修饰符24
3.1.3 封装与信息隐藏25
3.2 类的设计31
3.2.1 抽象数据类型31
3.2.2 类设计指南31
3.2.3 契约式设计33
3.3 类主题的变化34
3.3.1 嵌套类(内部类)34
3.3.2 抽象类36
3.3.3 接口37
小结38
第4章 对象创建和消息传递
4.1 对象的创建40
4.1.1 对象创建的语法41
4.1.2 对象数组的创建43
4.2 消息传递44
4.2.1 消息传递的理解.44
4.2.2 消息的类型45
4.2.3 消息传递的语法46
4.2.4 动态联编48
4.3 接收者伪变量49
4.4 内存存储与回收50
4.4.1 指针和内存分配50
4.4.2 内存回收51
4.5 构造函数52
4.5.1 构造函数语法52
4.5.2 构造函数重载53
4.5.3 常量值初始化54
4.6 析构函数与垃圾回收55
4.7 对象的结构57
4.7.1 对象同一和对象相等57
4.7.2 对象赋值和复制的形式59
4.7.3 对象赋值的例子59
小结61
思考与练习61
第5章 元类与反射
5.1 元类64
5.1.1 元类的概念64
5.1.2 类对象65
5.2 反射66
5.2.1 反射的概念66
5.2.2 Java类加载器67
5.3 Java反射API67
5.3.1 Java反射功能68
5.3.2 Java中的类
第7章 多态
7.1 多态的概念100
7.1.1 多态简介101
7.1.2 多态的价值101
7.1.3 多态的形式102
7.2 多态的运行机制103
7.2.1 联编103
7.2.2 绑定过程104
7.3 重载105
7.3.1 重载的作用105
7.3.2 类型签名和范畴106
7.3.3 强制、转换和造型107
7.3.4 重载的解析108
7.4 多态变量109
7.4.1 简单变量109
7.4.2 接收者变量110
7.4.3 反多态(向下造型)111
7.4.4 纯多态(多态方法)111
7.5 泛型112
7.5.1 什么是泛型112
7.5.2 为什么需要泛型113
7.5.3 C++的模板114
7.5.4 Java的泛型116
小结117
思考与练习.117
第8章 代码复用
8.1 代码复用机制120
8.1.1 使用继承120
8.1.2 组合复用的例子121
8.1.3 使用组合123
8.1.4 继承和组合124
8.2 优雅地使用继承126
8.2.1 继承示例一:继承的代价126
8.2.2 继承示例二:多边形绘制127
8.2.3 继承示例三:对象排序129
8.2.4 “即插即用”设计136
8.3 “即插即用”设计136
8.4 类库和框架137
小结137
思考与练习140
第9章 面向对象建模
9.1 UML概述141
9.1.1 静态视图143
9.2.1 类图143
9.2.2 对象图145
9.3 用例图146
9.4 状态机视图147
9.5 活动视图148
9.6 交互视图149
9.7 模型管理视图150
9.8 实现视图151
9.9 部署视图152
小结153
思考与练习153
第10章 面向对象设计原则
10.1 设计原则概述155
第10章 面向对象设计原则
10.1 影响软件可维护性的因素155
10.1.1 面向对象设计原则概览155
10.2 开闭原则156
10.2.1 什么是开闭原则156
10.2.2 开闭原则解析157
10.2.3 开闭原则的示例158
10.3 里氏替换原则160
10.3.1 什么是里氏替换原则160
10.3.2 里氏替换原则解析161
10.3.3 里氏替换原则设计案例164
10.4 依赖倒置原则169
10.4.1 什么是依赖倒置原则169
10.4.2 依赖倒置原则解析169
10.4.3 依赖倒置原则设计案例170
10.5 组合复用原则174
10.5.1 什么是组合复用原则174
10.5.2 组合复用原则解析174
10.5.3 组合复用原则设计案例176
10.6 迪米特法则177
10.6.1 什么是迪米特法则177
10.6.2 迪米特法则解析178
10.6.3 迪米特法则设计案例180
10.7 接口隔离原则183
10.7.1 什么是接口隔离原则183
10.7.2 接口隔离原则解析183
10.7.3 接口隔离原则设计案例185
10.8 单一职责原则188
10.8.1 什么是单一职责原则188
10.8.2 单一职责原则解析189
10.8.3 单一职责原则设计案例190
小结192
思考与练习192
第11章 面向对象设计模式
11.1 设计模式概念196
11.2 创建型模式196
11.2.1 工厂方法模式197
11.2.2 抽象工厂模式198
11.2.3 单例模式200
11.2.4 建造者模式201
11.2.5 原型模式202
11.3 结构型模式203
11.3.1 适配器模式.204
11.3.2 代理模式205
11.3.3 装饰器模式206
11.3.4 桥梁模式207
11.3.5 组合模式208
11.3.6 门面模式210
11.3.7 享元模式211
11.4 行为型模式212
11.4.1 责任链模式212
11.4.2 观察者模式214
11.4.3 策略模式215
11.4.4 迭代器模式215
11.4.5 访问者模式216
11.4.6 命令模式218
11.4.7 状态模式219
11.4.8 模板方法模式219
11.4.9 备忘录模式220
11.4.10 中介模式221
11.4.11 解释器模式222
小结223
思考与练习223
第12章 组件化的程序设计
12.1.1 组件及其特点227
12.1.2 面向组件开发技术228
12.2 软件组件的演变229
12.2.1 传统化项目结构229
12.2.2 模块化项目结构230
12.2.3 组件化项目结构230
12.3 组件化程序设计方法230
12.3.1 轻度组件化231
12.3.2 重度组件化232
12.3.3 组件化开发思维233
小结.233
思考与练习233
第13章 微服务架构
13.1 软件架构设计236
13.1.1 什么是软件架构236
13.1.2 为什么要架构设计237
13.1.3 软件架构设计误区238
13.2 软件架构的演变238
13.2.1 单体架构238
13.2.2 分布式架构239
13.2.3 SOA架构240
13.2.4 微服务架构241
13.3 微服务优点242
13.3.1 微服务核心构成243
13.4 读写分离架构244
13.4.1 读写分离的基本实现244
13.4.2 复制延迟245
13.4.3 分配机制245
13.5 微服务架构实践247
小结248
思考与练习248
第14章 业界著名设计案例
14.1 Spring Boot/Spring Cloud250
14.1.1 观察者模式/发布订阅模式251
14.1.2 工厂模式254
14.1.3 单例模式254
14.1.4 策略和代理模式255
14.2 Dubbo的RPC架构257
14.2.1 工厂方法模式258
14.2.2 装饰器模式258
14.2.3 观察者模式259
14.2.4 动态代理模式259
14.3 Nginx260
14.3.1 反应器模式260
14.3.2 外观模式260
14.3.3 桥接模式261
14.4 Kubernetes261
14.4.1 基本模式262
14.4.2 结构模式262
14.4.3 行为模式263
14.4.4 高级模式263
14.5 Kafka263
14.6 Angular265
14.6.1 依赖注入模式265
14.6.2 模型适配器模式265
14.7 MyBatis266
14.8 Redis缓存数据库267
14.9 云原生数据库CNDB268
14.9.1 多副本模式268
14.9.2 Sidecar模式269
14.9.3 大使模式269
14.9.4 适配器模式.269
小结270
思考与练习270
1.1 面向对象技术的发展1
1.2 面向对象思想的理解2
1.2.1 一个现实世界的例子3
1.2.2 代理和责任3
1.2.3 抽象4
1.2.4 技术特点总结4
1.3 面向对象软件工程5
1.4 面向对象技术特征5
1.5 面向对象编程语言6
1.6 程序设计范式8
1.6.1 面向机器编程8
1.6.2 面向过程编程8
1.6.3 结构化程序设计9
1.6.4 面向对象编程9
1.6.5 函数式编程9
1.6.6 其他编程范式10
小结10
思考与练习20
第2章 面向对象基本特征
2.1 面向对象编程基本概念12
2.1.1 对象的概念12
2.1.2 对象的特点13
2.1.3 对象标识13
2.1.4 方法14
2.1.5 消息14
2.1.6 对象持久化.15
2.2 对象的概念和特性12
2.3 信息隐藏(封装)15
2.4 复合对象16
2.5 类的概念和特性16
2.5.1 类的概念16
2.5.2 类的性质17
2.5.3 类和型17
2.5.4 类的实例18
2.5.5 契约与责任18
2.6 抽象性19
2.7 多态性20
小结20
第3章 类
3.1 类的定义21
3.1.1 类定义的要素22
3.1.2 可视性修饰符24
3.1.3 封装与信息隐藏25
3.2 类的设计31
3.2.1 抽象数据类型31
3.2.2 类设计指南31
3.2.3 契约式设计33
3.3 类主题的变化34
3.3.1 嵌套类(内部类)34
3.3.2 抽象类36
3.3.3 接口37
小结38
第4章 对象创建和消息传递
4.1 对象的创建40
4.1.1 对象创建的语法41
4.1.2 对象数组的创建43
4.2 消息传递44
4.2.1 消息传递的理解.44
4.2.2 消息的类型45
4.2.3 消息传递的语法46
4.2.4 动态联编48
4.3 接收者伪变量49
4.4 内存存储与回收50
4.4.1 指针和内存分配50
4.4.2 内存回收51
4.5 构造函数52
4.5.1 构造函数语法52
4.5.2 构造函数重载53
4.5.3 常量值初始化54
4.6 析构函数与垃圾回收55
4.7 对象的结构57
4.7.1 对象同一和对象相等57
4.7.2 对象赋值和复制的形式59
4.7.3 对象赋值的例子59
小结61
思考与练习61
第5章 元类与反射
5.1 元类64
5.1.1 元类的概念64
5.1.2 类对象65
5.2 反射66
5.2.1 反射的概念66
5.2.2 Java类加载器67
5.3 Java反射API67
5.3.1 Java反射功能68
5.3.2 Java中的类
第7章 多态
7.1 多态的概念100
7.1.1 多态简介101
7.1.2 多态的价值101
7.1.3 多态的形式102
7.2 多态的运行机制103
7.2.1 联编103
7.2.2 绑定过程104
7.3 重载105
7.3.1 重载的作用105
7.3.2 类型签名和范畴106
7.3.3 强制、转换和造型107
7.3.4 重载的解析108
7.4 多态变量109
7.4.1 简单变量109
7.4.2 接收者变量110
7.4.3 反多态(向下造型)111
7.4.4 纯多态(多态方法)111
7.5 泛型112
7.5.1 什么是泛型112
7.5.2 为什么需要泛型113
7.5.3 C++的模板114
7.5.4 Java的泛型116
小结117
思考与练习.117
第8章 代码复用
8.1 代码复用机制120
8.1.1 使用继承120
8.1.2 组合复用的例子121
8.1.3 使用组合123
8.1.4 继承和组合124
8.2 优雅地使用继承126
8.2.1 继承示例一:继承的代价126
8.2.2 继承示例二:多边形绘制127
8.2.3 继承示例三:对象排序129
8.2.4 “即插即用”设计136
8.3 “即插即用”设计136
8.4 类库和框架137
小结137
思考与练习140
第9章 面向对象建模
9.1 UML概述141
9.1.1 静态视图143
9.2.1 类图143
9.2.2 对象图145
9.3 用例图146
9.4 状态机视图147
9.5 活动视图148
9.6 交互视图149
9.7 模型管理视图150
9.8 实现视图151
9.9 部署视图152
小结153
思考与练习153
第10章 面向对象设计原则
10.1 设计原则概述155
第10章 面向对象设计原则
10.1 影响软件可维护性的因素155
10.1.1 面向对象设计原则概览155
10.2 开闭原则156
10.2.1 什么是开闭原则156
10.2.2 开闭原则解析157
10.2.3 开闭原则的示例158
10.3 里氏替换原则160
10.3.1 什么是里氏替换原则160
10.3.2 里氏替换原则解析161
10.3.3 里氏替换原则设计案例164
10.4 依赖倒置原则169
10.4.1 什么是依赖倒置原则169
10.4.2 依赖倒置原则解析169
10.4.3 依赖倒置原则设计案例170
10.5 组合复用原则174
10.5.1 什么是组合复用原则174
10.5.2 组合复用原则解析174
10.5.3 组合复用原则设计案例176
10.6 迪米特法则177
10.6.1 什么是迪米特法则177
10.6.2 迪米特法则解析178
10.6.3 迪米特法则设计案例180
10.7 接口隔离原则183
10.7.1 什么是接口隔离原则183
10.7.2 接口隔离原则解析183
10.7.3 接口隔离原则设计案例185
10.8 单一职责原则188
10.8.1 什么是单一职责原则188
10.8.2 单一职责原则解析189
10.8.3 单一职责原则设计案例190
小结192
思考与练习192
第11章 面向对象设计模式
11.1 设计模式概念196
11.2 创建型模式196
11.2.1 工厂方法模式197
11.2.2 抽象工厂模式198
11.2.3 单例模式200
11.2.4 建造者模式201
11.2.5 原型模式202
11.3 结构型模式203
11.3.1 适配器模式.204
11.3.2 代理模式205
11.3.3 装饰器模式206
11.3.4 桥梁模式207
11.3.5 组合模式208
11.3.6 门面模式210
11.3.7 享元模式211
11.4 行为型模式212
11.4.1 责任链模式212
11.4.2 观察者模式214
11.4.3 策略模式215
11.4.4 迭代器模式215
11.4.5 访问者模式216
11.4.6 命令模式218
11.4.7 状态模式219
11.4.8 模板方法模式219
11.4.9 备忘录模式220
11.4.10 中介模式221
11.4.11 解释器模式222
小结223
思考与练习223
第12章 组件化的程序设计
12.1.1 组件及其特点227
12.1.2 面向组件开发技术228
12.2 软件组件的演变229
12.2.1 传统化项目结构229
12.2.2 模块化项目结构230
12.2.3 组件化项目结构230
12.3 组件化程序设计方法230
12.3.1 轻度组件化231
12.3.2 重度组件化232
12.3.3 组件化开发思维233
小结.233
思考与练习233
第13章 微服务架构
13.1 软件架构设计236
13.1.1 什么是软件架构236
13.1.2 为什么要架构设计237
13.1.3 软件架构设计误区238
13.2 软件架构的演变238
13.2.1 单体架构238
13.2.2 分布式架构239
13.2.3 SOA架构240
13.2.4 微服务架构241
13.3 微服务优点242
13.3.1 微服务核心构成243
13.4 读写分离架构244
13.4.1 读写分离的基本实现244
13.4.2 复制延迟245
13.4.3 分配机制245
13.5 微服务架构实践247
小结248
思考与练习248
第14章 业界著名设计案例
14.1 Spring Boot/Spring Cloud250
14.1.1 观察者模式/发布订阅模式251
14.1.2 工厂模式254
14.1.3 单例模式254
14.1.4 策略和代理模式255
14.2 Dubbo的RPC架构257
14.2.1 工厂方法模式258
14.2.2 装饰器模式258
14.2.3 观察者模式259
14.2.4 动态代理模式259
14.3 Nginx260
14.3.1 反应器模式260
14.3.2 外观模式260
14.3.3 桥接模式261
14.4 Kubernetes261
14.4.1 基本模式262
14.4.2 结构模式262
14.4.3 行为模式263
14.4.4 高级模式263
14.5 Kafka263
14.6 Angular265
14.6.1 依赖注入模式265
14.6.2 模型适配器模式265
14.7 MyBatis266
14.8 Redis缓存数据库267
14.9 云原生数据库CNDB268
14.9.1 多副本模式268
14.9.2 Sidecar模式269
14.9.3 大使模式269
14.9.4 适配器模式.269
小结270
思考与练习270