[201004][企业应用架构模式][王怀民][周斌][译]

[201004][企业应用架构模式][王怀民][周斌][译]

模式列表

引言

0.1 架构

0.2 企业应用

0.3 企业应用的种类

0.4 关于性能的考虑

0.5 模式

0.5.1 模式的结构

0.5.2 模式的局限性

第一部分 表述

第 1 章 分层

1.1 企业应用中层次的演化

1.2 三个基本层次

1.3 为各层选择运行环境

第 2 章 组织领域逻辑

2.1 抉择

2.2 服务层

第 3 章 映射到关系数据库

3.1 架构模式

3.2 行为问题

3.3 读取数据

3.4 结构映射模式

3.4.1 关系的映射
3.4.2 继承

3.5 建立映射

3.6 使用元数据

3.7 数据库连接

3.8 其他问题

3.9 进一步阅读

第 4 章 Web 表现层

4.1 视图模式

4.2 输入控制器模式

4.3 进一步阅读

第 5 章 并发

5.1 并发问题

5.2 执行语境

5.3 隔离与不变性

5.4 乐观并发控制和悲观并发控制

5.4.1 避免不一致读
5.4.2 死锁

5.5 事务

5.5.1 ACID
5.5.2 事务资源
5.5.3 减少事务隔离以提高灵活性
5.5.4 业务事务和系统事务

5.6 离线并发控制的模式

5.7 应用服务器并发

5.8 进一步阅读

第 6 章 会话状态

6.1 无状态的价值

6.2 会话状态

6.3 存储会话状态的方法

第 7 章 分布策略

7.1 分布对象的诱惑

7.2 远程接口和本地接口

7.3 必须使用分布的情况

7.4 关于分布边界

7.5 分布接口

第 8 章 通盘考虑

8.1 从领域层开始

8.2 深入到数据源层

8.2.1 事务脚本的数据源
8.2.2 表模块的数据源
8.2.3 领域模型的数据源

8.3 表现层

8.4 一些关于具体技术的建议

8.4.1 Java 和 J2EE
8.4.2 .NET
8.4.3 存储过程
8.4.4 Web Services

8.5 其他分层方式

第二部分 模式

第 9 章 领域逻辑模式

9.1 事务脚本(Transaction Script)

9.1.1 运行机制
9.1.2 使用时机
9.1.3 收入确认问题
9.1.4 例:收入确认(Java)

9.2 领域模型(Domain Model)

9.2.1 运行机制
9.2.2 使用时机
9.2.3 进一步阅读
9.2.4 例:收入确认(Java)

9.3 表模块(Table Module)

9.3.1 运行机制
9.3.2 使用时机
9.3.3 例:基于表模块的收入确认(C#)

9.4 服务层(Service Layer)

9.4.1 运行机制
9.4.2 使用时机
9.4.3 进一步阅读
9.4.4 例:收入确认(Java)

第 10 章 数据源架构模式

10.1 表数据入口(Table Data Gateway)

10.1.1 运行机制
10.1.2 使用时机
10.1.3 进一步阅读
10.1.4 例:人员入口(C#)
10.1.5 例:使用 ADO.NET 数据集(C#)

10.2 行数据入口(Row Data Gateway)

10.2.1 运行机制
10.2.2 使用时机
10.2.3 例:人员记录(Java)
10.2.4 例:领域对象的数据保持器(Java)

10.3 活动记录(Active Record)

10.3.1 运行机制
10.3.2 使用时机
10.3.3 例:一个简单的 Person 类(Java)

10.4 数据映射器(Data Mapper)

10.4.1 运行机制
10.4.2 使用时机
10.4.3 例:一个简单的数据映射器(Java)
10.4.4 例:分离查找方法(Java)
10.4.5 例:创建一个空对象(Java)

第 11 章 对象-关系行为模式

11.1 工作单元(Unit of Work)

11.1.1 运行机制
11.1.2 使用时机
11.1.3 例:使用对象注册的工作单元(Java)

11.2 标识映射(Identity Map)

11.2.1 运行机制
11.2.2 使用时机
11.2.3 例:标识映射中的方法(Java)

11.3 延迟加载(Lazy Load)

11.3.1 运作机制
11.3.2 使用时机
11.3.3 例:延迟初始化(Java)
11.3.4 例:虚代理(Java)
11.3.5 例:使用值保持器(Java)
11.3.6 例:使用重影(C#)

第 12 章 对象-关系结构模式

12.1 标识域(Identity Field)

12.1.1 工作机制
12.1.2 使用时机
12.1.3 进一步阅读
12.1.4 例:整型键(C#)
12.1.5 例:使用键表(Java)
12.1.6 例:使用组合键(Java)

12.2 外键映射(Foreign Key Mapping)

12.2.1 运行机制
12.2.2 使用时机
12.2.3 例:单值引用(Java)
12.2.4 例:多表查询(Java)
12.2.5 例:引用集合(C#)

12.3 关联表映射(Association Table Mapping)

12.3.1 运行机制
12.3.2 使用时机
12.3.3 例:雇员和技能(C#)
12.3.4 例:使用直接的 SQL(Java)
12.3.5 例:用一次查询查多个雇员(Java)

12.4 依赖映射(Dependent Mapping)

12.4.1 运行机制
12.4.2 使用时机
12.4.3 例:唱片和曲目(Java)

12.5 嵌入值(Embedded Value)

12.5.1 运行机制
12.5.2 使用时机
12.5.3 进一步阅读
12.5.4 例:简单值对象(Java)

12.6 序列化 LOB(Serialized LOB)

12.6.1 运行机制
12.6.2 使用时机
12.6.3 例:在 XML 中序列化一个部门层级(Java)

12.7 单表继承(Single Table Inheritance)

12.7.1 运行机制
12.7.2 使用时机
12.7.3 例:运动员的单表(C#)
12.7.4 从数据库中加载对象

12.8 类表继承(Class Table Inheritance)

12.8.1 运行机制
12.8.2 使用时机
12.8.3 进一步阅读
12.8.4 例:运动员和他们的家属(C#)

12.9 具体表继承(Concrete Table Inheritance)

12.9.1 运行机制
12.9.2 使用时机
12.9.3 例:具体运动员(C#)

12.10 继承映射器(Inheritance Mappers)

12.10.1 运行机制
12.10.2 使用时机

第 13 章 对象-关系元数据映射模式

13.1 元数据映射(Metadata Mapping)

13.1.1 运行机制
13.1.2 使用时机
13.1.3 例:使用元数据和反射(Java)

13.2 查询对象(Query Object)

13.2.1 运行机制
13.2.2 使用时机
13.2.3 进一步阅读
13.2.4 例:简单的查询对象(Java)

13.3 资源库(Repository)

13.3.1 运行机制
13.3.2 使用时机
13.3.3 进一步阅读
13.3.4 例:查找一个人所在的部门(Java)
13.3.5 例:资源库交互策略(Java)

第 14 章 Web 表现模式

14.1 模型-视图-控制器(Model View Controller)

14.1.1 运行机制
14.1.2 使用时机

14.2 页面控制器(Page Controller)

14.2.1 运行机制
14.2.2 使用时机
14.2.3 例:Servlet 控制器和 JSP 视图的简单演示(Java)
14.2.4 例:使用 JSP 充当处理程序(Java)
14.2.5 例:代码隐藏的页面控制器(C#)

14.3 前端控制器(Front Controller)

14.3.1 运行机制
14.3.2 使用时机
14.3.3 进一步阅读
14.3.4 例:简单的显示(Java)

14.4 模板视图(Template View)

14.4.1 运行机制
14.4.2 使用时机
14.4.3 例:分离的控制器,使用 JSP 充当视图(Java)
14.4.4 例:ASP.NET 服务器页面(C#)

14.5 转换视图(Transform View)

14.5.1 运行机制
14.5.2 使用时机
14.5.3 例:简单的转换(Java)

14.6 两步视图(Two Step View)

14.6.1 运行机制
14.6.2 使用时机
14.6.3 例:两阶 XSLT(XSLT)
14.6.4 例:JSP 和定制标记(Java)

14.7 应用控制器(Application Controller)

14.7.1 运行机制
14.7.2 使用时机
14.7.3 进一步阅读
14.7.4 例:状态模型应用控制器(Java)

第 15 章 分布模式

15.1 远程外观(Remote Facade)

15.1.1 运行机制
15.1.2 使用时机
15.1.3 例:使用 Java 语言的会话 bean 来作为远程外观(Java)
15.1.4 例:Web Service(C#)

15.2 数据传输对象(Data Transfer Object)

15.2.1 运行机制
15.2.2 使用时机
15.2.3 进一步阅读
15.2.4 例:传输唱片信息(Java)
15.2.5 例:使用 XML 实现序列化(Java)

第 16 章 离线并发模式

16.1 乐观离线锁(Optimistic Offline Lock)

16.1.1 运行机制
16.1.2 使用时机
16.1.3 例:领域层与数据映射器(Java)

16.2 悲观离线锁(Pessimistic Offline Lock)

16.2.1 运行机制
16.2.2 使用时机
16.2.3 例:简单锁管理对象(Java)

16.3 粗粒度锁(Coarse-Grained Lock)

16.3.1 运行机制
16.3.2 使用时机
16.3.3 例:共享的乐观离线锁(Java)
16.3.4 例:共享的悲观离线锁(Java)
16.3.5 例:根对象乐观离线锁(Java)

16.4 隐含锁(Implicit Lock)

16.4.1 运行机制
16.4.2 使用时机
16.4.3 例:隐含的悲观离线锁(Java)

第 17 章 会话状态模式

17.1 客户会话状态(Client Session State)

17.1.1 运行机制
17.1.2 使用时机

17.2 服务器会话状态(Server Session State)

17.2.1 运行机制
17.2.2 使用时机

17.3 数据库会话状态(Database Session State)

17.3.1 运行机制
17.3.2 使用时机

第 18 章 基本模式

18.1 入口(Gateway)

18.1.1 运行机制
18.1.2 使用时机
18.1.3 例:私有消息服务的入口(Java)

18.2 映射器(Mapper)

18.2.1 运行机制
18.2.2 使用时机

18.3 层超类型(Layer Supertype)

18.3.1 运行机制
18.3.2 使用时机
18.3.3 例:领域对象(Java)

18.4 分离接口(Separated Interface)

18.4.1 运行机制
18.4.2 使用时机

18.5 注册表(Registry)

18.5.1 运行机制
18.5.2 使用时机
18.5.3 例:单子注册表(Java)
18.5.4 例:线程安全的注册表(Java)

18.6 值对象(Value Object)

18.6.1 运行机制
18.6.2 使用时机

18.7 货币(Money)

18.7.1 运行机制
18.7.2 使用时机
18.7.3 例:货币类(Java)

18.8 特殊情况(Special Case)

18.8.1 运行机制
18.8.2 使用时机
18.8.3 进一步阅读
18.8.4 例:一个简单的空对象(C#)

18.9 插件(Plugin)

18.9.1 运行机制
18.9.2 使用时机
18.9.3 例:ID 生成器(Java)

18.10 服务桩(Service Stub)

18.10.1 运行机制
18.10.2 使用时机
18.10.3 例:销售税服务(Java)

18.11 记录集(Record Set)

18.11.1 运行机制
18.11.2 使用时机

参考文献

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值