事务脚本和表模式的区别是什么

小编 229

事务脚本和表模式的区别是:1.解决问题的角度不同;2.侧重点不同。解决问题的角度不同是指,事务脚本是基于功能的设计模式,将业务逻辑和数据操作封装在脚本中;而表模式是基于数据的设计模式,将业务逻辑和数据操作封装在表对象中。

1.解决问题的角度不同

事务脚本(Transaction Script)简称TS模式,是一种基于功能的设计模式,它将所有的业务逻辑和数据操作封装在一个脚本中,通常使用过程化编程风格实现。事务脚本本身可以理解是用户动作的一次任务编排,而触发的方式一般直接与用户的行为建立联系。

表模式实际上是指表模块(Table Module),它是一种基于数据的设计模式,它将所有的业务逻辑和数据操作封装在一个或多个数据表中,通常使用面向对象编程风格实现。表模式是先考虑好有哪些数据要管理,然后设计好数据库表,剩下的就是增删改查的代码和界面了。

2.侧重点不同

事务脚本模式的重点在于将复杂的业务流程分解为多个步骤,并为每个步骤定义一个事务脚本,以便提高代码的可维护性和可重用性。事务脚本通常与数据源(如数据库表)紧密耦合,它们对应于特定的业务操作(如创建订单、添加产品等),并与前端用户界面交互。

而表模式的重点在于将领域逻辑封装在数据表对象中,并为每个表定义一个或多个方法,以便管理和操作表中的数据。表模式通常与数据源(如数据库)松散耦合,它们对应于特定的领域对象(如订单、产品等),并与后端数据层交互。

延伸阅读

什么时候可以使用事务脚本模式

事务脚本是使用过程来组织业务逻辑,每个过程处理来自表现层的单个请求,在过程中直接调用数据库 ,或者只通过一个简单的数据库封装类来访问数据库。通俗的来说,事务脚本就是让每个过程对应用户可能做的一个动作。事物脚本模式主要适用于以下两种情况:

名列前茅种情况,当不满足领域模型设计条件的时候。

不论是由于技能原因,还是由于缺少领域专家,当进行系统设计时的背景无法满足领域建模的时候,就可以使用事务脚本模式设计。这种情况往往是进行新的业务尝试,业务的领域属性并不明确,或者是无法明确抽象。那这种情况下可以先进行事务脚本模式的编写。

第二种情况,项目足够单一的时候。

这里的单一为业务单一、职责单一、变动单一。可以理解成当用户动作只有少量的时候,那么此时对动作的抽象成本较高。同样的当项目职责单一,又不便于直接划归为某一子领域的时候,进行领域建模无意义。而当变动频率低程度小的时候,事务中方法的膨胀速度也就比较缓慢。

总的来说,当项目起步、或者业务还在朦胧地试错期的时候,可以直接进行事务脚本模式的编写。但要注意的是,要时刻警惕事务爆炸,当业务已经明确或可以领域知识足够后,就要考虑将事务合并抽取领域模型了。

回复

我来回复
  • 暂无回复内容

站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部