- 分层的组织方式
- 好处:减小了层次间的依赖.某层只依赖于其下一层.可以替换某层的实现.
- 缺陷:可能带来级联修改.过多的层次影响性能.
- 难点是决定建立那些层次,以及每一层的职责是什么.
- tier/layer
- tier意味着物理上的分离.C/S系统被称为"two-tier system'.是指物理上的两台机器.
- layer.强调的是逻辑上独立的层次.
- 基本层次
- 表现层/领域层/数据源层
- 领域和数据源层不能依赖表现层,不能调用表现层的代码.这样替换表现层代价最小,修改表现层的连锁反应最小.
- 各层次的运行环境
- 领域逻辑
- 可以完全放在C或者S中.
- 尽量不要分割放在C和S.可以将部分逻辑独立出来.然后在C或S端运行.
- 领域逻辑
- 组织领域逻辑
- 事务脚本
- 每个动作由一个过程驱动.
- 领域模型
- 解决复杂的逻辑必然要引入对象.
- 带来了到数据源层的复杂性.
- 表模块
- 与记录集一起工作.
- 围绕表来组织领域逻辑.
- 服务层
- 将领域层分为两层:服务层+底层的领域模型/表模块
- 表现层与领域层的交互完全通过服务层.
- 服务层可以放置事务控制和安全.
- 应该最小化服务层,只是一个API传递层,并附加上适当的逻辑.