`

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

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

相关推荐

    数据库脚本

    在IT领域,数据库脚本是程序员和数据库管理员的必备工具,它们可以帮助实现以下关键功能: 1. **数据定义**:通过CREATE TABLE语句,可以定义数据库的表结构,包括字段名、数据类型、主键、外键等约束。例如,`...

    用于空间数据处理的Python脚本(Pete Bunting等)Python Scripting for Spatial Data Processing (Pete Bunting, et al)

    本书标题为《用于空间数据处理的Python脚本》,作者是Pete Bunting等人。本书是面向初学者的Python教程,专注于教授空间数据处理方面的知识。在描述中提到,该书已被阿伯里斯特威斯大学在遥感和地理信息系统(GIS)...

    groovy and grails ppt

    Grails项目的目录结构遵循CoC原则,包括如`grails-app`(Groovy源码目录)、`conf`(配置文件)、`controllers`(MVC中的控制器)、`domain`(应用领域模型)、`i18n`(国际化)、`services`(服务层)、`taglib`...

    Expert_J2EE_Design_And_Development

    总的来说,《Expert One-on-One J2EE Design And Development》这本书是J2EE开发者的一份详尽指南,它不仅教授了J2EE的核心技术,还提供了实践经验和深度洞察,有助于读者成为J2EE领域的专家。通过阅读和学习这本书...

    PHP5 And MySQL Programming

    《PHP5 And MySQL Programming》是IT领域中一本深受开发者喜爱的学习资源,主要涵盖了PHP5编程语言与MySQL数据库的集成应用。这本书旨在帮助读者理解和掌握如何使用PHP5与MySQL进行高效、安全的Web开发。 PHP5作为...

    PHP and MySQL Web Development 4th Edition

    PHP(Hypertext Preprocessor)是一种广泛使用的开源服务器端脚本语言,尤其适合Web开发。它能够嵌入到HTML中,使开发者能够在网页上动态生成内容。在本书中,作者将详细介绍PHP的基本语法、变量、控制结构、函数...

    begining groovy and grails

    1. **领域驱动设计**:Grails鼓励开发者采用领域驱动设计(DDD),将业务逻辑封装在领域模型中,提高了代码的可维护性和可扩展性。 2. **自动表单和验证**:Grails自动生成表单和验证规则,大大减少了前端和后端的...

    Practical MongoDB - Architecting, Developing, and Administering

    通过本章的实际案例分析,读者可以更好地理解MongoDB在不同领域中的应用实践,例如电子商务、社交媒体等行业的具体实施细节。 ### 第十一章:MongoDB限制 尽管MongoDB具有诸多优点,但也有一定的局限性。本章列举...

    Wrox.Expert.PHP.and.MySQL.Mar.2010.rar

    4. MySQL数据库设计:讲解数据库概念,如ER模型、范式理论,以及如何设计高效的数据表结构。 5. 数据库操作:介绍如何创建、修改和删除数据库及表,以及索引的使用和优化。 6. PHP安全:讨论防止SQL注入、XSS攻击和...

    Pattern-Oriented Software Architecture Volume 1-5

    这部分内容包括了数据访问、业务逻辑和用户界面的模式,如事务脚本模式、领域模型模式、表示层分离模式等。这些模式对于构建大型、复杂的企业系统至关重要,它们有助于实现系统的松耦合、可扩展性和可维护性。 **...

    Database.Systems.Design,.Implementation.and.Management,

    - 使用多种恢复策略(如事务日志、快照)来快速恢复受损数据。 - **性能监控与优化**: - 监控关键性能指标 (KPIs) 如响应时间、CPU使用率等。 - 使用索引、分区等技术提高查询效率。 - 调整配置参数以适应不断...

    Using Spring with JDO and Hibernate 中文版

    - 在项目构建脚本中添加JDO字节码增强任务,例如使用`jdoc`任务定义(见示例5-8)。 - 配置Ant构建文件,确保包含所有必要的JAR文件。 3. **构建持久性映射**: - 可以使用Kodo自带的工具或手动编写XML元数据文件...

    J2EE.rar_java面试题

    Java面试题是评估应聘者Java编程技能和技术理解的重要方式,尤其在J2EE(Java Platform, Enterprise Edition)领域。J2EE是Java平台的一个版本,专门用于开发和部署企业级应用,包括分布式系统、Web应用和服务。以下...

    j2ee面试试题汇总大全

    - **JAAS(Java Authentication and Authorization Service)**:Java的安全模型,提供认证和授权服务。 - **过滤器(Filter)**:实现请求过滤,如登录验证、GZIP压缩等。 - **SSL/TLS**:保证网络通信的安全,...

    J2EE学习过程和学习方法总结

    在本文中,我们将深入探讨J2EE学习过程和学习方法,这是一个对于任何希望在企业级Java开发领域有所建树的开发者至关重要的主题。J2EE(Java 2 Platform, Enterprise Edition)是一种由Oracle公司维护的开放标准,...

    Access数据库表与Sql数据库表转换

    然后,通过ODBC(Open Database Connectivity)数据源创建连接,使用SQL Server Import and Export Wizard或者编写T-SQL脚本来迁移数据。 2. SQL到Access的导出: 在反向操作中,从SQL数据库导出到Access可能涉及...

    七周七并发高清版附送惊喜书籍

    另外,附赠的《企业应用架构模式》则是一部经典之作,它总结了在大型企业系统中广泛使用的架构模式,如事务脚本、领域模型、数据访问对象(DAO)等。这些模式可以帮助开发者设计出更稳定、可扩展和易于维护的系统。 ...

    PHP and MySQL Web Development (3rd edition)

    PHP是一种广泛使用的服务器端脚本语言,尤其在Web开发领域,它以其灵活性和易学性而备受青睐。PHP可以嵌入到HTML中,也可以与各种模板系统和框架配合使用,提供动态网页内容。PHP 5及以上版本引入了更多的面向对象...

    inside ole

    《Inside OLE》是关于微软组件对象模型(Component Object Model, 简称COM)及其在Windows操作系统中的实现——OLE(Object Linking and Embedding)的权威指南。这本书的第二版,即《Inside OLE 2E》,深入解析了...

Global site tag (gtag.js) - Google Analytics