第一部分 基础篇 2
第1章 面向对象基础 2
1.1 面向对象方法 2
1.1.1 面向对象方法的内涵 2
1.1.2 面向对象方法的基本概念 3
1.1.3 面向对象的产生 5
1.1.4 面向对象的优势 7
1.2 类和类的成员 10
1.2.1 类和对象 10
1.2.2 类的成员类型和访问控制 11
1.2.3 字段 12
1.2.4 属性 13
1.2.5 方法 14
1.2.6 构造函数和析构函数 15
1.2.7 委托 16
1.2.8 事件 18
1.3 面向对象的特征 21
1.3.1 封装 21
1.3.2 继承 23
1.3.3 多态 30
本章小结 34
习题 35
第2章 面向对象的开发过程 36
2.1 面向对象分析 36
2.1.1 概论 36
2.1.2 需求陈述 37
2.1.3 建立对象模型 39
2.1.4 建立动态模型 46
2.1.5 建立功能模型 50
2.2 面向对象设计 53
2.2.1 面向对象设计的准则 53
2.2.2 问题域部分设计 54
2.2.3 人机交互部分设计 55
2.2.4 任务管理部分设计 57
2.2.5 数据管理部分设计 58
2.3 面向对象的编程实现 60
2.3.1 编程语言的选择 60
2.3.2 面向对象语言的技术支持 61
2.3.3 面向对象程序设计风格 63
2.4 面向对象的测试 65
2.4.1 面向对象测试概述 65
2.4.2 面向对象测试策略 66
2.4.3 设计测试用例 67
本章小结 69
习题 70
第3章 面向对象软件设计基础 71
3.1 面向对象设计视点 71
3.1.1 复用 71
3.1.2 扩展 73
3.1.3 分离与封装变化 75
3.1.4 低耦合高内聚 77
3.2 面向对象软件设计原则 81
3.2.1 开放封闭原则 82
3.2.2 单一职责原则 83
3.2.3 里氏代换原则 84
3.2.4 依赖倒转原则 85
3.2.5 接口隔离原则 87
3.2.6 迪米特法则 89
3.2.7 其他原则 90
3.3 UML类图简介 91
3.3.1 类 91
3.3.2 接口 91
3.3.3 继承 91
3.3.4 实现 92
3.3.5 依赖 92
3.3.6 关联 93
3.3.7 聚合(联合) 93
3.3.8 组合(合成) 94
本章小结 94
习题 95
第二部分 进阶篇 98
第4章 设计模式基础 98
4.1 概述 98
4.1.1 什么是设计模式 98
4.1.2 设计模式的基本要素 99
4.1.3 怎样使用设计模式 100
4.2 设计模式的类型 100
4.2.1 创建型设计模式 101
4.2.2 结构型设计模式 102
4.2.3 行为型设计模式 105
本章小结 108
习题 108
第5章 创建型设计模式 109
5.1 简单工厂模式 109
5.1.1 意图 111
5.1.2 角色及其职责 111
5.1.3 应用示例 112
5.1.4 效果分析 116
5.1.5 特点 116
5.1.6 适用性 116
5.2 工厂方法模式 116
5.2.1 意图 116
5.2.2 角色及其职责 117
5.2.3 应用示例 118
5.2.4 效果分析 120
5.2.5 特点 121
5.2.6 适用性 121
5.3 抽象工厂模式 122
5.3.1 意图 122
5.3.2 角色及其职责 122
5.3.3 应用示例 123
5.3.4 效果分析 126
5.3.5 特点 127
5.3.6 适用性 127
5.4 建造者模式 127
5.4.1 意图 127
5.4.2 角色及其职责 127
5.4.3 应用示例 128
5.4.4 效果分析 134
5.4.5 特点 134
5.4.6 适用性 135
5.5 单件模式 135
5.5.1 意图 135
5.5.2 角色及其职责 135
5.5.3 用示例 135
5.5.4 效果分析 139
5.5.5 特点 140
5.5.6 适用性 140
5.6 原型模式 140
5.6.1 意图 142
5.6.2 角色及其职责 142
5.6.3 应用示例 142
5.6.4 效果分析 148
5.6.5 特点 148
5.6.6 适用性 148
本章小结 148
习题 149
第6章 结构型设计模式 150
6.1 适配器模式 150
6.1.1 意图 150
6.1.2 角色及其职责 150
6.1.3 应用示例 152
6.1.4 效果分析 155
6.1.5 特点 155
6.1.6 适用性 155
6.2 装饰模式 156
6.2.1 意图 156
6.2.2 角色及其职责 156
6.2.3 应用示例 156
6.2.4 效果分析 160
6.2.5 特点 160
6.2.6 适用性 161
6.3 桥接模式 161
6.3.1 意图 161
6.3.2 角色及其职责 161
6.3.3 应用示例 162
6.3.4 效果分析 165
6.3.5 特点 166
6.3.6 适用性 166
6.4 享元模式 166
6.4.1 意图 166
6.4.2 角色及其职责 167
6.4.3 应用示例 168
6.4.4 效果分析 171
6.4.5 特点 172
6.4.6 适用性 172
6.5 外观模式 173
6.5.1 意图 173
6.5.2 角色及其职责 173
6.5.3 应用示例 174
6.5.4 效果分析 178
6.5.5 特点 178
6.5.6 适用性 178
6.6 代理模式 179
6.6.1 意图 179
6.6.2 角色及其职责 179
6.6.3 应用示例 179
6.6.4 效果分析 181
6.6.5 特点 182
6.6.6 适用性 182
6.7 组合模式 182
6.7.1 意图 182
6.7.2 角色及其职责 182
6.7.3 应用示例 183
6.7.4 效果分析 189
6.7.5 特点 189
6.7.6 适用性 189
本章小结 190
习题 190
第7章 行为型设计模式 191
7.1 模板方法模式 191
7.1.1 意图 191
7.1.2 角色及其职责 192
7.1.3 应用示例 192
7.1.4 效果分析 198
7.1.5 特点 199
7.1.6 适用性 199
7.2 观察者模式 199
7.2.1 意图 199
7.2.2 角色及其职责 199
7.2.3 应用示例 200
7.2.4 效果分析 204
7.2.5 特点 204
7.2.6 适用性 204
7.3 迭代器模式 205
7.3.1 意图 205
7.3.2 角色及其职责 205
7.3.3 应用示例 207
7.3.4 效果分析 214
7.3.5 特点 215
7.3.6 适用性 215
7.4 责任链模式 215
7.4.1 意图 215
7.4.2 角色及其职责 216
7.4.3 应用示例 216
7.4.4 效果分析 221
7.4.5 特点 221
7.4.6 适用性 221
7.5 备忘录模式 221
7.5.1 意图 222
7.5.2 角色及其职责 222
7.5.3 应用示例 223
7.5.4 效果分析 228
7.5.5 特点 228
7.5.6 适用性 228
7.6 命令模式 228
7.6.1 意图 229
7.6.2 角色及其职责 229
7.6.3 应用示例 230
7.6.4 效果分析 239
7.6.5 特点 239
7.6.6 适用性 239
7.7 状态模式 240
7.7.1 意图 240
7.7.2 角色及其职责 241
7.7.3 应用示例 241
7.7.4 效果分析 249
7.7.5 特点 250
7.7.6 适用性 250
7.8 访问者模式 250
7.8.1 意图 250
7.8.2 角色及其职责 250
7.8.3 应用示例 251
7.8.4 效果分析 260
7.8.5 特点 260
7.8.6 适用性 261
7.9 中介者模式 261
7.9.1 意图 261
7.9.2 角色及其职责 262
7.9.3 应用示例 262
7.9.4 效果分析 270
7.9.5 特点 270
7.9.6 适用性 271
7.10 策略模式 271
7.10.1 意图 271
7.10.2 角色及其职责 271
7.10.3 应用示例 272
7.10.4 效果分析 280
7.10.5 特点 280
7.10.6 适用性 280
7.11 解释器模式 281
7.11.1 意图 281
7.11.2 角色及其职责 281
7.11.3 应用示例 282
7.11.4 效果分析 285
7.11.5 特点 285
7.11.6 适用性 286
本章小结 286
习题 286
第三部分 高级篇 290
第8章 软件架构与架构建模技术 290
8.1 软件架构概况 290
8.1.1 软件架构的发展史 290
8.1.2 软件架构的定义 291
8.2 经典软件架构模式 292
8.2.1 管道和过滤器模式 292
8.2.2 面向对象模式 294
8.2.3 分层模式 296
8.2.4 知识库模式 298
8.3 客户机/服务器模式 300
8.3.1 客户机/服务器模式的产生 301
8.3.2 传统两层客户机/服务器模式 302
8.3.3 经典三层客户机/服务器模式 305
8.4 浏览器/服务器模式 307
8.5 基于构件的模式 309
8.6 软件架构建模技术 311
8.6.1 软件架构“4+1”视图模型 312
8.6.2 “4+1”视图模型建模方法 312
8.6.3 软件架构建模的迭代过程 314
本章小结 315
习题 316
第9章 基于组件的软件开发 317
9.1 组件开发概述 317
9.1.1 组件及其相关概念 317
9.1.2 组件复用 319
9.2 组件模型 322
9.2.1 CORBA 322
9.2.2 EJB 327
9.2.3 COM 334
9.2.4 三种组件模型的技术对比 340
本章小结 341
习题 341
第10章 面向服务的软件架构——SOA 342
10.1 SOA简介 342
10.1.1 SOA参考模型 343
10.1.2 SOA的设计原则 344
10.1.3 SOA实现的主要技术规范 345
10.2 SOA的框架 351
10.2.1 以服务消费者为中心的SOA 352
10.2.2 以用户为中心的SOA 355
10.3 SOA实例——基于SOA的OA与ERP整合应用 358
10.4 SOA的应用分析 361
本章小结 363
习题 363
参考文献 364