0 0

一个DAO层与Biz层设计疑惑?5

今天看到一篇"DAO与SERVICE层的疑惑"的提问,不禁回想起公司框架中dao与biz的设计,由于公司的软件开发属于传统型的(一个模块的dao\biz\view由同一人来负责全部代码编写),并没采用那种工厂型开发模式(dao\biz\view由不同的人来开发),在项目中,有些同事(由原工厂型开发软件公司跳槽过来)习惯于,dao层与biz层严格降低耦合,dao的方法只负责纯綷的增\删\改,需要的SQL语句条件由biz层调用其他的dao层准备好再传递;但有些同事的dao层写了很多与业务关联很紧的方法,其语句条件直接在SQL语句的多表联合查询中获得.
  过多的考虑降低dao层与biz层的耦合,使得dao层方法的通用性提高,但肯定牺牲了部分性能,因为其需要的条件需要biz层多次调用数据库其他表查询获得;而直接按特定业务将语句写入dao层在性能上较好,但其通用性肯定降低;
  不知各位达人在这两方面如何根据项目需要来取舍的呢?
DAO 
2008年10月13日 16:23

3个答案 按时间排序 按投票排序

0 0

应该是分工合作。如果从前台到后台都一个人做,可能效果不会太好。因为每个人都有不擅长的和不擅长的。要让人发挥最大的作用,才能提高生产率。

2008年10月14日 23:39
0 0

其实,这个考虑到一个项目的管理,如果是一个很大的项目(上百人左右,或者说50以上的人开发,而且要好长的开发时间),我觉得,工厂型的开发,这种有可能会比较好,如果说是一个小的项目,这样做,确是没必要,但并不是说工厂型的就没有好的性能,如果要好的性能,也可以在业务层写特殊的SQL语句,然后传到DAO层执行(DAO层有一个公共执行的方法,参数是SQL语句,然后返回一个结果),我觉得这样的设计也不错吗.所以没有什么好不好,根据需要,不管什么样的模式,都可以莰入不不同的模式设计.做到灵活多变.

2008年10月14日 14:16
0 0

个人觉得还是性能重要,实际上不管用什么ORM框架,我个人更倾向于使用JPA然后DAO和Service合并为一个层,这样就没这么多考虑了。

2008年10月14日 11:30

相关推荐

    DAO层_Service层_Controller层、View层介绍

    DAO层_Service层_Controller层、View层的一些了解知识,帮助填充对这部分比较空白的开发者们。

    Service层和DAO层解析

    Service层和DAO层是软件开发中常见的两种设计模式,主要用于分离业务逻辑和数据访问操作。在Java Web开发中,它们通常被应用于三层架构或MVC(Model-View-Controller)模型中。 DAO(Data Access Object)层是负责...

    C#特性标签实现通用Dao层

    在C#编程中,"通用Dao层"是一个常见的设计模式,用于封装数据库操作,使得业务逻辑层能够专注于处理业务规则,而无需关心底层数据访问的细节。本篇将重点探讨如何利用C#的特性(Attribute)标签来实现这一目标,同时...

    action层,dao层 ,service层,entity层1

    在实际项目中,这样的分层设计有助于代码的组织和模块化,使得每个层都专注于自己的职责,提高了代码的可维护性和可扩展性。同时,通过良好的接口设计,各层之间可以松耦合,降低了组件间的依赖,使得系统更易于理解...

    简单DAO层示例

    在IT行业中,DAO(Data Access Object)层是软件设计模式中的一个重要组成部分,它主要用于数据库操作,隔离了业务逻辑层与数据存储层之间的交互。在这个"简单DAO层示例"中,我们将探讨DAO的设计原则、实现方式以及...

    JSP+DAOD的设计模式,完全体现了业务层与数据层,显示层的关系

    2. **业务层(服务层)**:这一层不直接与数据库打交道,而是通过调用DAO接口来完成业务逻辑。例如,可能会有一个UserService类,其中包含了业务逻辑,如`addUser(User user)`方法,该方法内部会调用DAO的`insert...

    DAO与三层结构

    DAO(Data Access Object)模式与三层结构是软件开发中常见的设计模式和架构方式,主要用于处理数据访问和业务逻辑。在企业级应用开发中,这两种技术的结合能够提高系统的可维护性、可扩展性和复用性。 DAO模式的...

    SpringBoot 多模块Dao层单元测试

    对于多模块的Spring Boot项目,每个模块可能包含不同的组件,如Service层、Controller层和Dao层。Dao层主要负责与数据库交互,因此它的单元测试通常涉及对数据库操作的模拟,而无需实际连接到数据库。 1. **配置多...

    Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合

    2. **分层设计**:Spring框架支持分层的设计模式,这意味着不同的业务功能可以被封装在不同的层中,例如Web层负责处理用户界面,Service层处理业务逻辑,DAO层处理数据访问。这样的设计有助于保持代码的清晰度,并...

    经典泛型dao层代码,非常好用简易

    ### 泛型DAO层在SSH框架中的应用与详解 #### 引言 在现代软件开发中,特别是基于Java的企业级应用开发中,DAO(Data Access Object)层的设计扮演着至关重要的角色。它作为业务逻辑层与数据持久层之间的桥梁,承担...

    一个的DAO数据访问层的实现

    DAO(Data Access Object)数据访问对象模式是一种常用的设计模式,用于在应用程序中处理与数据库的交互。这个模式的主要目的是将业务逻辑与数据访问代码分离,提高代码的可维护性和可测试性。在这个“一个的DAO数据...

    web应用dao层的开发经验小结

    在Web应用程序的开发中,DAO(Data Access Object)层是一个至关重要的部分,它负责与数据库进行交互,隔离业务逻辑和数据存储的细节。本篇文章将深入探讨DAO层的设计与实现经验,结合源码分析和实用工具,以提高...

    dao层自动生成

    在IT行业中,DAO(Data Access Object)层是软件设计模式中的一个重要组成部分,它主要用于封装对数据库的操作,使得业务逻辑层与数据访问层解耦。"DAO层自动生成"这一技术旨在提高开发效率,减少手动编写重复代码的...

    泛型通用DAO,可以很简化DAO层的代码

    在Java编程领域,DAO(Data Access Object)模式是一种常见的设计模式,用于封装对数据库的操作,以解耦业务逻辑层和数据存储层。泛型通用DAO是这种模式的一种优化,它利用了Java 5.0引入的泛型和反射机制,大大简化...

    mybatisDAO层自动生成插件

    MyBatis DAO层自动生成插件是一个非常实用的工具,它极大地简化了开发过程中DAO(Data Access Object)层的编写工作。MyBatis是Java领域的一款流行持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,使得...

    图书管理系统DAO层代码

    在IT行业中,数据库访问对象(DAO)层是软件设计中的一个重要组成部分,特别是在Java开发中。DAO层主要用于处理数据存储和检索,它隔离了业务逻辑层与数据库交互的细节,使得代码更加灵活和可维护。本项目是关于一个...

    项目model、Dao层、业务层建模工具类

    在IT行业中,建模是软件开发过程中的一个重要环节,它帮助我们清晰地理解系统的结构和功能,便于设计和实现。本资源提供了一种用于项目model、Dao层、业务层建模的工具类,旨在简化开发流程,提高代码复用性。下面...

    DAO设计模式 DAO 设计模式 JAVA设计模式

    在Java开发中,DAO模式广泛应用于数据库操作,为应用程序提供了一种抽象层,避免了直接与SQL语句打交道。 DAO模式的主要组成部分包括以下几个方面: 1. **接口定义**:DAO接口定义了对数据存储的操作方法,如增、...

    生成mybatis的实体类+dao层+xml层

    总的来说,"生成mybatis的实体类+DAO层+xml层"是一个提高开发效率、减少重复工作的重要手段。通过合理配置,我们可以自动化生成符合规范的MyBatis代码,使开发工作更加专注于业务逻辑,而非基础架构。在实际项目中,...

    JDBC_DAO设计思想与搭建骨架, 结合Service层讲解DAO层的异常处理

    本篇文章将深入探讨JDBC DAO的设计思想,以及如何结合Service层来构建一个完整的异常处理机制。 首先,理解JDBC DAO的基本概念。DAO模式的主要目标是提供一个接口,使得业务层可以与具体的数据库操作分离。这样,...

Global site tag (gtag.js) - Google Analytics