事务脚本的特点
- 多数应用可看成由多个事务组成
- 事务脚本将多个业务逻辑组织成单个过程
- 事务间相互修改各自产生的数据
事务脚本的运行机制
使用事务脚本时,领域逻辑主要通过系统所执行的事务来组织。例如:预定酒店过程。
事务脚本的组织
- 将整个事务脚本放在一个类里
- 每一个事务脚本对应一个类,需要使用命令模式[Gang of Four ]
- 全局函数
示例
收入确认过程:某公司出售三种产品:word,excel,数据库。由于存在分期确认收入的因素,业务规则如下:
- 当签下一个售出word合同时,所有收入立即入帐
- 当签下一个售出excel合同时,当天入帐1/3,60天后入帐1/3,90天后入帐剩下的1/3
- 当签下一个售出数据库合同时,当天入帐1/3,30天后入帐1/3,60天后入帐剩下的1/3
事务脚本建立步骤
Step1 建立三个关系
products | contracts | revenueRecognitions |
ID(primary key)产品ID | ID (primary key)合同ID | contract (primary key) |
name产品名称 | product产品 | amount确认金额 |
type产品类型 | revenue合同金额 | recognizedOn (primary key)确认日期 |
dateSigned合同日期 |
Step2 建立两个事务脚本
- 查询某合同在指定日期前已经确认的收入额(在收入确认表中选择相应的行;相加计算总数)
- 计算合同的收入确认,分两步