论事务脚本与领域模型

来源:互联网 发布:js div 赋值 编辑:程序博客网 时间:2024/05/21 07:52

所谓事务脚本,MartinFowler定义是:将所有逻辑组织在一个单一过程,进行数据库直接调用,
每笔交易(业务请求)都有自己的事务脚本,并且是一个类的公开方法。

 所谓领域模型,是一系列相互关联的对象,每个对象代表一定意义的独立体,既可以一起以一种大规模
 方式协作;也可以小到以单线方式运行 。

   近期的一个项目使用到了事务脚本,因为系统是架构师架构的,所以无法选择。第一次接触事务脚本这种架构方式,作为一个忠实的面向对象程序员不免有些不屑。程序中操作极其简单,我们的项目使用jdbc+struts2+spring。项目中的操作真是特别简单的思想,jsp页面到action,action调用方法操作数据库。这种方式可以说开发起来极其迅速,而且灵活。但是有一个缺点,代码复用率不高,往往需要做好多重复的工作,虽然我们项目里面的方法经过了封装,但是还是有许多要自己写的东西,而且有时候sql什么的都需要自己写。真是让人感觉有点回到了原始社会的感觉。
   之前做项目都是使用领域模型,当然是简单领域模型,复杂领域模型我还没有看见有人在项目中用过,如果有高手麻烦给点指导意见或者示例。领域驱动模式目前比较火,因为这种方式很好的迎合了面向对象的思想,从分层到对象的操作,都体现了面向对象的思想。而且如果封装的比较好的话,代码的复用率也很高,基本自己只需要写action就行了。
   总结:引用MartinFowler的一句话,好多东西明明可以简单的解决,我们为什么要复杂化它,简单的解决某些事情原本就是很好的。当然,福勒大师还是倾向于领域模型的,我个人理解如果项目小的话使用事务脚本很方便快捷,也不会出现乱七八糟的问题,如果业务逻辑复杂可能需要使用领域模型这种方式。


 

原创粉丝点击