设计模式-领域逻辑模式-事务脚本(Transaction Script)

事务脚本的特点

  1. 多数应用可看成由多个事务组成
  2. 事务脚本将多个业务逻辑组织成单个过程
  3. 事务间相互修改各自产生的数据

事务脚本的运行机制

     使用事务脚本时,领域逻辑主要通过系统所执行的事务来组织。例如:预定酒店过程。


事务脚本的组织

  1. 将整个事务脚本放在一个类里
  2. 每一个事务脚本对应一个类,需要使用命令模式[Gang of Four ]
  3. 全局函数

示例

收入确认过程:某公司出售三种产品:word,excel,数据库。由于存在分期确认收入的因素,业务规则如下:

  1. 当签下一个售出word合同时,所有收入立即入帐
  2. 当签下一个售出excel合同时,当天入帐1/3,60天后入帐1/3,90天后入帐剩下的1/3
  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 建立两个事务脚本

  1. 查询某合同在指定日期前已经确认的收入额(在收入确认表中选择相应的行;相加计算总数)
  2. 计算合同的收入确认,分两步

相关推荐

  1. 设计模式】使用策略模式优化表单校验逻辑

    2024-07-17 13:32:04       36 阅读
  2. 设计模式-模板方法模式

    2024-07-17 13:32:04       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 13:32:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 13:32:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 13:32:04       58 阅读
  4. Python语言-面向对象

    2024-07-17 13:32:04       69 阅读

热门阅读

  1. ActiViz实战:ActiViz中的自己实现鼠标双击事件

    2024-07-17 13:32:04       28 阅读
  2. libwebrtc.a+exosip连接fS 环境部署tips

    2024-07-17 13:32:04       20 阅读
  3. NoSql选择题解

    2024-07-17 13:32:04       23 阅读
  4. Qt鼠标拖动线条组成的多边形移动

    2024-07-17 13:32:04       22 阅读