- ISBN:9787111303930
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:363
- 出版时间:2022-04-01
- 条形码:9787111303930 ; 978-7-111-30393-0
内容简介
本书作者是当今面向对象软件开发的非常不错,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,*终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。本书获得了2003年度美国软件开发杂志图书类的生产效率奖和读者选择奖。本书分为两大部分。**部分是关于如何开发企业应用的简单介绍。第二部分是本书的主体,是关于模式的详细参考手册,每个模式都给出使用方法和实现信息,并配以详细的Java代码或C#代码示例。此外,整本书中还用了大量UML图来进一步阐明有关概念。本书是为致力于设计和构建企业应用的软件架构师、设计人员和编程人员而写的,同时也可作为高等院校计算机专业及软件学院相关课程的参考教材。
目录
译者序
前言
模式列表
引言1
0.1 架构1
0.2 企业应用2
0.3 企业应用的种类3
0.4 关于性能的考虑4
0.5 模式6
0.5.1 模式的结构7
0.5.2 模式的局限性9
**部分 表 述
第1章 分层12
1.1 企业应用中层次的演化13
1.2 三个基本层次14
1.3 为各层选择运行环境15
第2章 组织领域逻辑19
2.1 抉择22
2.2 服务层23
第3章 映射到关系数据库25
3.1 架构模式25
3.2 行为问题28
3.3 读取数据29
3.4 结构映射模式30
3.4.1 关系的映射30
3.4.2 继承33
3.5 建立映射34
3.6 使用元数据35
3.7 数据库连接36
3.8 其他问题38
3.9 进一步阅读38
第4章 Web表现层39
4.1 视图模式41
4.2 输入控制器模式43
4.3 进一步阅读43
第5章 并发45
5.1 并发问题45
5.2 执行语境46
5.3 隔离与不变性47
5.4 乐观并发控制和悲观并发控制48
5.4.1 避免不一致读49
5.4.2 死锁49
5.5 事务50
5.5.1 ACID51
5.5.2 事务资源51
5.5.3 减少事务隔离以提高灵活性52
5.5.4 业务事务和系统事务53
5.6 离线并发控制的模式54
5.7 应用服务器并发55
5.8 进一步阅读56
第6章 会话状态57
6.1 无状态的价值57
6.2 会话状态58
6.3 存储会话状态的方法59
第7章 分布策略61
7.1 分布对象的诱惑61
7.2 远程接口和本地接口62
7.3 必须使用分布的情况63
7.4 关于分布边界64
7.5 分布接口64
第8章 通盘考虑67
8.1 从领域层开始67
8.2 深入到数据源层68
8.2.1 事务脚本的数据源68
8.2.2 表模块的数据源69
8.2.3 领域模型的数据源69
8.3 表现层69
8.4 一些关于具体技术的建议70
8.4.1 Java和J2EE70
8.4.2 .NET71
8.4.3 存储过程71
8.4.4 Web Services72
8.5 其他分层方式72
第二部分 模 式
第9章 领域逻辑模式76
9.1 事务脚本(Transaction Script)76
9.1.1 运行机制76
9.1.2 使用时机77
9.1.3 收入确认问题78
9.1.4 例:收入确认(Java)78
9.2 领域模型(Domain Model)81
9.2.1 运行机制81
9.2.2 使用时机83
9.2.3 进一步阅读83
9.2.4 例:收入确认(Java)84
9.3 表模块(Table Module)87
9.3.1 运行机制88
9.3.2 使用时机90
9.3.3 例:基于表模块的收入确认(C#)90
9.4 服务层(Service Layer)93
9.4.1 运行机制94
9.4.2 使用时机96
9.4.3 进一步阅读96
9.4.4 例:收入确认(Java)96
第10章 数据源架构模式101
10.1 表数据入口(Table Data Gateway)101
10.1.1 运行机制101
10.1.2 使用时机102
10.1.3 进一步阅读102
10.1.4 例:人员入口(C#)103
10.1.5 例:使用ADO.NET数据集(C#)104
10.2 行数据入口(Row Data Gateway)106
10.2.1 运行机制107
10.2.2 使用时机108
10.2.3 例:人员记录(Java)108
10.2.4 例:领域对象的数据保持器(Java)111
10.3 活动记录(Active Record)112
10.3.1 运行机制112
10.3.2 使用时机113
10.3.3 例:一个简单的Person类(Java)113
10.4 数据映射器(Data Mapper)115
10.4.1 运行机制116
10.4.2 使用时机119
10.4.3 例:一个简单的数据映射器(Java)119
10.4.4 例:分离查找方法(Java)123
10.4.5 例:创建一个空对象(Java)126
第11章 对象-关系行为模式129
11.1 工作单元(Unit of Work)129
11.1.1 运行机制129
11.1.2 使用时机133
11.1.3 例:使用对象注册的工作单元
(Java)134
11.2 标识映射(Identity Map)137
11.2.1 运行机制137
11.2.2 使用时机139
11.2.3 例:标识映射中的方法(Java)139
11.3 延迟加载(Lazy Load)140
11.3.1 运作机制140
11.3.2 使用时机142
11.3.3 例:延迟初始化(Java)142
11.3.4 例:虚代理(Java)142
11.3.5 例:使用值保持器(Java)144
11.3.6 例:使用重影(C#)144
第12章 对象-关系结构模式151
12.1 标识域(Identity Field)151
12.1.1 工作机制151
12.1.2 使用时机154
12.1.3 进一步阅读154
12.1.4 例:整型键(C#)154
12.1.5 例:使用键表(Java)155
12.1.6 例:使用组合键(Java)157
12.2 外键映射(Foreign Key Mapping)166
12.2.1 运行机制167
12.2.2 使用时机169
12.2.3 例:单值引用(Java)169
12.2.4 例:多表查询(Java)172
12.2.5 例:引用集合(C#)173
12.3 关联表映射(Association Table
Mapping)175
12.3.1 运行机制176
12.3.2 使用时机176
12.3.3 例:雇员和技能(C#)177
12.3.4 例:使用直接的SQL(Java)179
12.3.5 例:用一次查询查多个雇员(Java)182
12.4 依赖映射(Dependent Mapping)186
12.4.1 运行机制186
12.4.2 使用时机187
12.4.3 例:唱片和曲目(Java)188
12.5 嵌入值(Embedded Value)190
12.5.1 运行机制190
12.5.2 使用时机190
12.5.3 进一步阅读191
12.5.4 例:简单值对象(Java)191
12.6 序列化LOB(Serialized LOB)192
12.6.1 运行机制193
12.6.2 使用时机194
12.6.3 例:在XML中序列化一个
部门层级(Java)194
12.7 单表继承(Single Table Inheritance)196
12.7.1 运行机制197
12.7.2 使用时机197
12.7.3 例:运动员的单表(C#)198
12.7.4 从数据库中加载对象199
12.8 类表继承(Class Table Inheritance)202
12.8.1 运行机制202
12.8.2 使用时机203
12.8.3 进一步阅读203
12.8.4 例:运动员和他们的家属(C#)203
12.9 具体表继承(Concrete Table Inheritance)208
12.9.1 运行机制209
12.9.2 使用时机210
12.9.3 例:具体运动员(C#)210
12.10 继承映射器(Inheritance Mappers)214
12.10.1 运行机制215
12.10.2 使用时机216
第13章 对象-关系元数据映射模式217
13.1 元数据映射(Metadata Mapping)217
13.1.1 运行机制217
13.1.2 使用时机218
13.1.3 例:使用元数据和反射(Java)219
13.2 查询对象(Query Object)224
13.2.1 运行机制225
13.2.2 使用时机225
13.2.3 进一步阅读226
13.2.4 例:简单的查询对象(Java)226
13.3 资源库(Repository)228
13.3.1 运行机制229
13.3.2 使用时机230
13.3.3 进一步阅读231
13.3.4 例:查找一个人所在的部门
(Java)231
13.3.5 例:资源库交换策略(Java)231
第14章 Web表现模式233
14.1 模型-视图-控制器
(Model View Controller)233
14.1.1 运行机制233
14.1.2 使用时机234
14.2 页面控制器(Page Controller)235
14.2.1 运行机制235
14.2.2 使用时机236
14.2.3 例:Servlet控制器和JSP视图
的简单演示(Java)236
14.2.4 例:使用JSP充当处理程序(Java)238
14.2.5 例:代码隐藏的页面控制器(C#)241
14.3 前端控制器(Front Controller)243
14.3.1 运行机制244
14.3.2 使用时机245
14.3.3 进一步阅读246
14.3.4 例:简单的显示(Java)246
14.4 模板视图(Template View)248
14.4.1 运行机制249
14.4.2 使用时机251
14.4.3 例:分离的控制器,使用JSP
充当视图(Java)252
14.4.4 例:ASP.NET服务器页面(C#)253
14.5 转换视图(Transform View)256
14.5.1 运行机制256
14.5.2 使用时机257
14.5.3 例:简单的转换(Java)257
14.6 两步视图(Two Step View)259
14.6.1 运行机制259
14.6.2 使用时机260
......
作者简介
Martin Fowler,重量软件开发大师,软件开发“教父”,敏捷开发方法的创始人之一,在面向对象分析与设计、UML、模式、极限编程、重构和DSL等领域都有非常深入的研究,并为软件开发行业做出了很好贡献。他乐于分享,撰写了《企业应用架构模式》《重构:改善既有代码的设计》《分析模式:可复用的对象模型》《UML精粹:标准对象建模语言简明指南》、《领域特定语言》等在软件开发领域颇负盛名的著作。
-
内向者的沟通课
¥20.6¥42.0 -
富爸爸穷爸爸
¥32.0¥89.0 -
学理:像理科大师一样思考
¥28.2¥48.0 -
底层逻辑:看清这个世界的底牌
¥61.4¥69.0 -
文案高手
¥18.7¥36.0 -
畅销的原理:为什么好观念、好产品会一炮而红?(八品)
¥13.5¥45.0 -
投资人和你想的不一样
¥20.8¥65.0 -
麦肯锡高效工作法(八品)
¥19.2¥52.0 -
鹤老师说经济:揭开财富自由的底层逻辑
¥26.7¥65.0 -
学会提问
¥47.6¥69.0 -
逆势突围
¥18.4¥68.0 -
麦肯锡底层领导力/(英)克劳迪奥·费泽,(英)迈克尔·伦尼,(英)尼古莱·陈·尼尔森
¥37.4¥68.0 -
麦肯锡逻辑思考法
¥32.8¥49.8 -
中美贸易战十评
¥2.3¥8.0 -
领导学全书柯维领导培训中心
¥18.4¥68.0 -
沃顿商学院最受欢迎的谈判课
¥18.6¥69.0 -
央企真相
¥23.8¥58.0 -
NO LOGO-颠覆品牌全球统治
¥9.5¥45.0 -
事实
¥42.1¥69.0 -
冯唐成事心法
¥50.7¥78.0