关于Service和Dao的关系

在新的项目里,没有办法理解Service和Dao的意义,今天在晚上查找了一下 Service层的作用,在Jdon上搜到了一篇帖子,层的职责的请教,看到了里面的一些讨论,自己对这两个层次的划分也明确了许多。

Service层是业务逻辑,包括对一些数据的预处理啊,这样的一层也便于以后业务变化后,改动的代价较小(这个也是设计模式中心思想);

Dao层主要是对封装对数据库的访问,查询数据,或者对对象持久化,不应改包含任何的业务逻辑。

而且我也查看了Appfuse中的Service层和Dao层的设计,也都是遵循这个原则的,即便是在Service中代码只有一行,就是调用Dao的方法,也还是有Service类存在。所以我觉得appfuse的设计者也是对这中设计是很认同的.


       现在项目中会有的人会想要把查询 和 增删改的操作分离,个人觉得就没有这个必要了,因为有的时候,查询并不是只有查询的,而且,开发人员还要去分辨什么时候要分开,什么时候不用分,会弄的人很郁闷的,,不知道在一些大型的项目或产品中采用的是什么样的设计方式.

 

-----------

20090622

再次回顾这篇文章,其实,这就是一个软件的设计的概念--分层。

横向的分层:业务层和数据库访问层。如果系统的数据库替换,我们会很容易更改数据库层。

纵向的分层:按业务的种类划分层次。比如:用户管理模块,配置管理模块等。

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在典型的Java应用程序中,Controller、ServiceDAO(Data Access Object)是三个关键组件,它们在应用程序中扮演不同的角色并协同工作。 1. Controller(控制器):Controller负责处理用户请求并将请求转发到适当的处理逻辑。它接收来自客户端的请求,并根据请求的类型和参数调用相应的Service方法来处理业务逻辑。Controller通常处理输入验证、参数传递和转发响应等任务。 2. Service(服务):Service层是应用程序的业务逻辑层,负责封装和实现具体的业务逻辑。Service层接收Controller传递的请求,并通过调用DAO层提供的方法来访问数据库或其他外部资源。它可以处理事务管理、数据转换、复杂的业务计算等任务。 3. DAO(数据访问对象):DAO层负责与数据库或其他数据存储机制进行交互,提供数据访问的接口和实现。它封装了对数据库的增删改查等基本操作,提供了对数据的持久化和检索功能。DAO层通常与特定的数据源(如关系型数据库)交互,并通过查询语言(如SQL)执行数据库操作。 在典型的应用程序中,Controller调用Service方法来处理业务逻辑,并且Service可以调用一个或多个DAO方法来访问数据库。这样的设计可以实现业务逻辑的封装和解耦,提高代码的可维护性和可测试性。同时,Controller、ServiceDAO之间的关系也可以根据具体的应用需求进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值