上篇 软件设计模式 3
第1章 软件设计模式概述 3
1.1软件设计模式的由来 3
1.2软件设计模式的概念及意义 3
1.3软件设计模式与软件体系结构 4
1.4软件设计模式的分类 5
第2章 创建型软件设计模式 7
2.1工厂方法与抽象工厂模式 7
2.1.1工厂方法应用场景 7
2.1.2简单工厂方法模式 10
2.1.3工厂方法模式 12
2.1.4抽象工厂模式 15
2.1.5关于工厂方法模式与抽象工厂模式的讨论 21
练习题与课下设计-编程作业1 23
2.2生成器模式 24
2.2.1生成器模式应用场景 24
2.2.2生成器模式的概念与机制 25
2.2.3生成器模式应用实例 27
2.2.4工厂方法模式、抽象工厂模式与生成器模式的比较 36
课下设计-编程作业2 36
2.3单例模式 37
2.3.1单例模式的概念与机制 37
2.3.2单例模式应用实例 38
2.3.3多线程编程中的单例模式 41
练习题与课下设计-编程作业3 44
本章总结 44
第3章 结构型软件设计模式 46
3.1组合模式 46
3.1.1组合模式的应用场景 46
3.1.2组合模式的概念与机制 48
3.1.3组合模式应用实例 49
3.1.4关于组合模式的讨论 61
练习题与课下设计-编程作业4 66
3.2适配器模式 67
3.2.1现实生活中的适配器 67
3.2.2适配器模式的概念与机制 68
3.2.3关于适配器模式的讨论 73
练习题与课下设计-编程作业5 75
3.3外观模式 76
3.3.1现实生活中的外观 76
3.3.2外观模式的概念 77
3.3.3使用外观模式进行设计的实例 78
3.3.4关于外观模式的讨论,89课下设计-编程作业6 89
3.4桥接模式 89
3.4.1桥接模式应用场景 90
3.4.2桥接模式的概念与机制 92
3.4.3桥接模式应用实例 93
3.4.4关于桥接模式的讨论 96
练习题与课下设计-编程作业7 97
本章总结 98
第4章 行为型软件设计模式 99
4.1迭代器模式 99
4.1.1迭代器模式应用场景 99
4.1.2迭代器模式的概念与机制 104
4.1.3迭代器模式应用实例 106
练习题与课下设计-编程作业8 111
4.2访问者模式 111
4.2.1访问者模式应用场景 112
4.2.2访问者模式的概念与机制 114
4.2.3访问者模式应用实例 116
4.2.4关于被访问者与访问者类之间的关联关系 122
4.2.5关于访问者模式中的ObjectStrueture类的Java实现 123
练习题与课下设计-编程作业9 124
4.3命令模式 124
4.3.1命令模式应用场景 125
4.3.2命令模式的概念与机制 126
4.3.3命令模式应用实例 127
4.3.4关于命令模式的讨论 137
练习题与课下设计-编程作业10 137
4.4中介者模式 138
4.4.1中介者模式应用场景 138
4.4.2中介者模式的概念与机制 139
4.4.3中介者模式应用实例 140
4.4.4中介者模式的实现细节 147
练习题与课下设计-编程作业11 148
4.5策略模式 149
4.5.1策略模式应用场景 150
4.5.2策略模式概念与机制 151
4.5.3策略模式应用实例 152
4.5.4关于策略模式的讨论 157
练习题与课下设计-编程作业12 158
4.6状态模式 160
4.6.1状态模式应用场景 160
4.6.2状态模式的概念与机制 161
4.6.3状态模式应用实例 163
4.6.4关于状态模式的讨论 174
练习题与课下设计-编程作业13 175
本章总结 176
下篇 软件体系结构 179
第5章 软件体系结构概述 179
5.1软件体系结构的概念 179
5.2软件体系结构的意义 179
5.3软件体系结构与软件质量属性 180
5.4软件体系结构的风格 181
第6章 经典软件体系结构 183
6.1调用-返回风格软件体系结构 183
6.1.1非结构化编程简介 183
6.1.2调用-返回风格软件体系结构的概念 184
6.1.3主程序-子程序软件体系结构 186
6.1.4面向对象软件体系结构 189
6.1.5主程序-子程序与面向对象体系结构的案例分析 195
6.1.6主程序-子程序与面向对象体系结构的比较 202
练习题与课下设计-编程作业14 204
6.2数据流风格软件体系结构 204
6.2.1数据流系统与数据流风格软件体系结构概述 204
6.2.2顺序批处理软件体系结构 205
6.2.3管道-过滤器软件体系结构 210
6.2.4顺序批处理系统与管道-过滤器软件体系结构的比较 226
练习题与课下设计-编程作业15 227
6.3事件系统软件体系结构 228
6.3.1事件系统软件体系结构的概念 228
6.3.2事件处理策略 233
6.3.3观察者模式应用场景 234
6.3.4观察者模式的概念与机制 235
6.3.5观察者模式应用实例 237
练习题与课下设计-编程作业16 244
6.4层次软件体系结构 245
6.4.1层次软件体系结构的概念 246
6.4.2一种典型的层次软件体系结构 248
6.4.3层次软件体系结构设计实例 248
练习题与课下设计-编程作业17 254
6.5 MVC软件体系结构 255
6.5.1 MVC软件体系结构应用场景 255
6.5.2 MVC软件体系结构的概念与机制 256
6.5.3 MVC软件体系结构应用实例 258
6.5.4关于MVC软件体系结构的讨论 268
练习题与课下设计-编程作业18 269
本章总结 270
第7章 基于网络的软件体系结构 271
7.1客户端-服务器软件体系结构 271
7.1.1一层客户端-服务器软件体系结构 272
7.1.2文件共享软件体系结构 272
7.1.3两层客户端-服务器软件体系结构 273
7.1.4三层客户端-服务器软件体系结构 275
7.1.5 Java EE软件体系结构简介 277
7.1.6三层层次体系结构与三层客户端-服务器软件体系结构的区别 279
练习题19 280
7.2 P2P软件体系结构 281
7.2.1 P2P软件体系结构的由来 281
7.2.2 P2P软件体系结构概述 282
7.2.3集中目录式P2 P——第一代P2 P软件体系结构 283
7.2.4纯P2 P——第二代P2 P软件体系结构 284
7.2.5非结构化的层次纯P2 P——第三代P2 P软件体系结构 286
7.2.6 JXTA—— P2P协议 287
练习题20 288
7.3网格计算软件体系结构 288
7.3.1网格计算的概念 289
7.3.2网格计算与其他计算的比较 292
7.3.3网格计算标准OGSI与开发工具 293
7.3.4网格计算应用领域与世界上著名的网格计算项目 294
练习题21 294
7.4 SOA软件体系结构与Web Service 295
7.4.1电子商务中B2 B模型简介 295
7.4.2 SOA软件体系结构的概念 296
7.4.3 Web Services 300
练习题22 302
7.5云计算软件体系结构 302
7.5.1云计算的概念及产生背景 302
7.5.2云计算软件体系结构 304
7.5.3云计算关键技术 306
7.5.4典型云计算平台 308
7.5.5云计算体系结构与网格计算体系结构的比较 310
练习题23 311
本章总结 311
参考文献 312