面向对象开发技术 / “十四五”高等学校计算机教育新形态一体化系列教材
定价:¥56.00
作者: 何伟,崔立真,董国庆等
出版时间:2024-11
最新印次日期:2024-11
出版社:中国铁道出版社
- 中国铁道出版社
- 9787113312596
- 1-1
- 531542
- 68260681-9
- 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.2Java类加载器67
5.3Java反射API67
5.3.1Java反射功能68
5.3.2Java中的类
第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.3C++的模板114
7.5.4Java的泛型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.1UML概述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.3SOA架构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.1SpringBoot/SpringCloud250
14.1.1观察者模式/发布订阅模式251
14.1.2工厂模式254
14.1.3单例模式254
14.1.4策略和代理模式255
14.2Dubbo的RPC架构257
14.2.1工厂方法模式258
14.2.2装饰器模式258
14.2.3观察者模式259
14.2.4动态代理模式259
14.3Nginx260
14.3.1反应器模式260
14.3.2外观模式260
14.3.3桥接模式261
14.4Kubernetes261
14.4.1基本模式262
14.4.2结构模式262
14.4.3行为模式263
14.4.4高级模式263
14.5Kafka263
14.6Angular265
14.6.1依赖注入模式265
14.6.2模型适配器模式265
14.7MyBatis266
14.8Redis缓存数据库267
14.9云原生数据库CNDB268
14.9.1多副本模式268
14.9.2Sidecar模式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.2Java类加载器67
5.3Java反射API67
5.3.1Java反射功能68
5.3.2Java中的类
第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.3C++的模板114
7.5.4Java的泛型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.1UML概述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.3SOA架构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.1SpringBoot/SpringCloud250
14.1.1观察者模式/发布订阅模式251
14.1.2工厂模式254
14.1.3单例模式254
14.1.4策略和代理模式255
14.2Dubbo的RPC架构257
14.2.1工厂方法模式258
14.2.2装饰器模式258
14.2.3观察者模式259
14.2.4动态代理模式259
14.3Nginx260
14.3.1反应器模式260
14.3.2外观模式260
14.3.3桥接模式261
14.4Kubernetes261
14.4.1基本模式262
14.4.2结构模式262
14.4.3行为模式263
14.4.4高级模式263
14.5Kafka263
14.6Angular265
14.6.1依赖注入模式265
14.6.2模型适配器模式265
14.7MyBatis266
14.8Redis缓存数据库267
14.9云原生数据库CNDB268
14.9.1多副本模式268
14.9.2Sidecar模式269
14.9.3大使模式269
14.9.4适配器模式.269
小结270
思考与练习270
















