`

领域模型 And 事务脚本

阅读更多
       事务脚本和领域模型之间的区别还是很明显的,显然,我们常见的系统中没有太多是采用领域建模来实现的;而大部分是采用事务脚本来实现。

        我承认事务脚本在解决简单问题方面确实是简单,特别是只是简单的CRUD问题。
      
       事务脚本的一个最重要的特征是:

        1. 简单的过程模型。也就是一个Service方法就对应着用户的一个命令,该命令通过行数据入口或者表数据入口来完成取数据操作,以及其它的数据处理操作。

        2. 行数据入口 或者 表数据入口。数据库中的记录对应一个对象,还是查询出来是对应数据库的记录集。行数据入口:为查询语句返回的每一行产生一个它的实例。这也应该是先行的很多ORM工具使用的方法。表数据入口:为查询语句返回一个记录集。对数据库中的每个表,仅仅使用一个对象来管理。

        3. 事务的边界:开始于脚本的打开,终止于脚本的关闭。也就是事务边界就是在Service方法上。

        在项目中,操作方式就是从Service -> DAO -> DB。我们数据库层采用的是ORM映射,数据库表和实体是一一映射关系,和行数据库入口差别不大。对于系统当中只有增删改查的情况,用这种方式相当直观,并且良好,不会有什么问题。

        但是,在系统的业务逻辑比较复杂的地方。虽然,我现在搞不清楚,到底有哪些地方业务逻辑比较复杂。可能最为复杂的地方是在度量吧,度量那部分有很多计算。
       
        一切在后面的发展过程中去看吧。现在不能简单的下结论,只要代码良好,问题都不大。       
分享到:
评论
3 楼 hiwzg 2007-07-16  
不知道什么样的业务才是负责业务,这个比较讨厌。
2 楼 nwangwei 2007-07-16  
普通应用使用事务脚本模式就足够了,而使用了脚本模式又使用hibernate和jdo反而把会事情搞复杂。

hibernate和jdo还是适合领域模型模式的,而目前就我所知,还是采用事务脚本来实现的应用比较多。

那怎么算普通应用呢?感觉是不觉得维护麻烦的时候都是普通应用,哈哈

比如银行、电信等积累了很多行业规范和操作手册之类的行业应用不算普通应用,其实都是因为业务逻辑比较复杂的缘故。

1 楼 hiwzg 2007-07-09  
领域模型是需求分析的方法,但是,领域模型分析之后得到的模型不能脱离于后面的分析和设计。也就是说,如果分析和设计不能反映模型,或者说是脱离了模型,那么领域分析也就没有用了。

看DDD一书,提到领域驱动的分析和设计,期间比较重要的角色有领域专家,领域专家和开发人员一起建模,得到领域模型,之后设计实现?

那么架构师在什么位置,需求分析人员在什么问题呢?我认为架构师应该是要和领域专家在一起进行领域建模,这个时候既属于需求的分析,又能够提炼出领域模型,架构师得出足以指导开发人员进行详细设计的架构设计,然后经过设计评审,就可以得到相对比较好的设计了。

相关推荐

    Spring攻略(第二版 中文高清版).part2

    7.2 用不同状态类型建立Web流程模型 246 7.2.1 问题 246 7.2.2 解决方案 246 7.2.3 工作原理 246 7.3 加强Web流程安全 257 7.3.1 问题 257 7.3.2 解决方案 258 7.3.3 工作原理 258 7.4 持续存储Web...

    Spring攻略(第二版 中文高清版).part1

    7.2 用不同状态类型建立Web流程模型 246 7.2.1 问题 246 7.2.2 解决方案 246 7.2.3 工作原理 246 7.3 加强Web流程安全 257 7.3.1 问题 257 7.3.2 解决方案 258 7.3.3 工作原理 258 7.4 持续存储Web...

    asp.net知识库

    ASP.Net应用程序的多进程模型 NET委托:一个C#睡前故事 [推荐] - [原创] Microsoft .NET策略及框架概述 卸载Class? Web Form 窗体 如何实现web页面的提示保存功能 在ASP.Net中两种利用CSS实现多界面的方法 如何在...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增的本地存储解决...

    java开源包1

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包11

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包2

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包3

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包6

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包5

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包10

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包4

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包8

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包7

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包9

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包101

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    Java资源包01

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    JAVA上百实例源码以及开源项目源代码

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    JAVA上百实例源码以及开源项目

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

Global site tag (gtag.js) - Google Analytics