首页 > 其他分享 >设计模式-领域逻辑模式-事务脚本(Transaction Script)

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

时间:2024-07-18 10:30:09浏览次数:16  
标签:脚本 事务 Transaction key Script primary 合同 设计模式 入帐

事务脚本的特点

  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. 计算合同的收入确认,分两步

标签:脚本,事务,Transaction,key,Script,primary,合同,设计模式,入帐
From: https://blog.csdn.net/workflower/article/details/140454997

相关文章

  • 如何在 Vue 和 JavaScript 中截取视频任意帧图片
    如何在Vue和JavaScript中截取视频任意帧图片大家好!今天我们来聊聊如何在Vue和JavaScript中截取视频的任意一帧图片。这个功能在很多场景下都非常有用,比如视频编辑、视频预览等。本文将带你一步步实现这个功能,并且会提供详细的代码示例。准备工作首先,我们需要一个Vue......
  • 设计模式:真正的建造者模式
    又臭又长的set方法经常进行Java项目开发使用各类starter的你一定见过这种代码:publicclassSwaggerConfig{@BeanpublicDocketapi(){returnnewDocket(DocumentationType.SWAGGER_2).select().apis(RequestHandler......
  • njs最详细的入门手册:Nginx JavaScript Engine
    原文链接:https://hi.imzlh.top/2024/07/08.cgi关于njs首先,njs似乎在国内外都不受关注,资料什么的只有官网参考手册,出了个问题只能看到GithubIssue所以,这篇文章将我的探索过程展示给大家,njs对于可用存储空间较小的设备真的很友好,相比较于NodeJS、Deno这种80M起步的运行环境真的......
  • 编程世界的对决:JavaScript vs Java
    在编程领域,Java和JavaScript这两门语言各有千秋。它们不仅在语法上有着明显的区别,在编程理念、表现力、类型转换以及代码的易读性和复杂性方面也有着巨大的差异。本文将深入探讨JavaScript相较于Java的优势,以及两者在代码风格和开发体验上的不同。1.表现力的对比1.1JavaScr......
  • Linux C++ 059-设计模式之备忘录模式
    LinuxC++059-设计模式之备忘录模式本节关键字:Linux、C++、设计模式、备忘录模式相关库函数:概念备忘录模式(MementoPattern),又叫做快照模式(SnapshotPattern)或Token模式,是GoF的23种设计模式之一,属于行为模式。定义(源于GoF《设计模式》):在不破坏封闭的前提下,捕获一个......
  • Linux C++ 060-设计模式之单例模式
    LinuxC++060-设计模式之单例模式本节关键字:Linux、C++、设计模式、单例模式相关库函数:概念单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对......
  • TS 入门(七):TypeScript模块与命名空间
    目录前言回顾泛型编程1.模块a.导入和导出b.默认导出c.重命名导入和导出2.命名空间a.定义命名空间b.嵌套命名空间3.动态导入与条件导入a.动态导入b.条件导入结语前言在前几章中,我们学习了TypeScript的基础知识、函数与对象类型、接口与类、以及泛型编......
  • 常用的 JavaScript 数组处理方法
    1.map方法用于创建一个新数组,其结果是该数组中的每个元素调用一个提供的函数后返回的结果。letitems=[{id:1,name:'item1'},{id:2,name:'item2'},{id:3,name:'item3'}];letitemNames=items.map(item=>item.name);console.log(itemNames);......
  • 模板设计模式
    模板模式(TemplatePattern)是一种行为设计模式,它在一个方法中定义一个操作的骨架,而将一些步骤的实现延迟到子类中。模板方法模式使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。模板模式的组成部分抽象类(AbstractClass):定义算法的骨架,并包含一个模板方法。......
  • 设计模式之抽象工厂模式(学习笔记)
    定义抽象工厂模式是一种创建型设计模式,它提供一个接口,用于创建一系列相关或依赖的对象,而无需指定它们的具体类。抽象工厂模式将对象的创建过程抽象化,允许子类通过实现具体工厂类来定制对象的创建。为什么使用抽象工厂模式产品族的一致性抽象工厂模式确保同一产品族中的对......