分布式设计模式-事务脚本

691 阅读2分钟

事务脚本模式:将业务逻辑组织为面向过程的事务脚本的集合,每种类型的请求都有一个脚本。

使用事务脚本模式设计业务逻辑

虽然我一直积极的倡导使用面向对象的方式,但在某些情况下使用面向对象的设计方法会有一种“杀鸡用牛刀”的感觉,例如在开发简单的业务逻辑时。在这种情况下,更好的方法是编写面向过程的代码,并使用Martin Fowler在《Patterns of Enterprise Application Architcture》一书中提到的事务脚本模式。你可以编写一个称为事务脚本的方法来处理来自表示层的每个请求,而不是进行任何面向对象的设计。如下图,这种方法的一个重要特征是实现行为的类与存储状态的类是分开的。

将业务逻辑组织为事务脚。在典型的基于事务脚本的设计中,一组类实现行为,另一组类负责存储状态,事务脚本通常被写成没有状态的类,脚本访问没有行为的数据类以完成持久化的任务。

使用事务脚本时,脚本通常位服务类中,在此实例中是aService类,每一个服务都有一个用于请求或者系统操作的方法,这个方法实现该请求的业务逻辑。它使用数据访问对象(DAO)访问数据库,例如aDao。数据对象是纯数据(例如model),几乎没有行为。

这种设计风格是高度面向过程的,仅仅依赖于面向对象编程(OOP)语言的少量功能,就好比你使用C或其他非OOP语言编写应用所能实现的功能。然而,在适当的时候,你不应该羞于使用面向过程的设计。这种方法适用于简单的业务逻辑,但这往往不是实现复杂业务逻辑的好方法。