关于service层和DAO层的几点疑惑

来源:百度知道 编辑:UC知道 时间:2024/05/28 00:47:47
首先,service层会很大,方法很多。
第二,试想,所有DAO都有增删改查四个基本方法。假设在DAO层(如StudentDAO.java)里student.add(),student.delete().student.update(),student.query()。
而如果应用增加了service层(如ApplictionServiceImpl.java),需要在service层中加上
applicationService.addStudent(),deleteStudent(),updateStudent(),queryStudent()四个方法。
这时你需要更新service层的接口类ApplicationService.Java,加上这四个方法。然后再更新service层的实现类ApplicationServiceImpl,加上这四个方法,最后你发现这四个方法每个方法里都只有一句话(以addStudent()为例)
public int addStudent(Student student){
return student.add();
}
这样是不是太傻了点,还不如在action中直接调用StudentDAO中的student.add()。
以上是我的个人看法,请各位指点
lovepetrel 是从网上copy过来的http://zhidao.baidu.com/question/46421595.html 已经看过了 就不多说了
Proc_871113写的很详细 先谢谢你 但是我还是有点不明白 能给我个例子么 有代码的 !

这么来讲好了 按你所说 在action中直接调用StudentDAO中的student.add()。 现在有客户A 客户B

客户A的需求是 addStudent 这个和你所说的情况一致

客户B的需求是 addStudent 前去加一个动作 将学生父母的信息也插入数据库

这时如果按照只调用DAO的方法的话,你需要从新建立一个action
CustomerBAction
再重新写一个DAO 因为这个DAO里要有添加父母的方法 student.addStudentAndParentInfo()。

CustomerBAction 去调用 student.addStudentAndParentInfo()。

这样加大了很多工作量

如果中间有service层的话 action始终用一个action
而调用的也是service接口 只要对接口注入不同的实现就可以满足 不同客户的需求了

知识要活学活用,要按照自己项目以后的发展趋势来搭设环境,别人家说什么就用什么。其实有时候javabean+jsp 也很好用啊,因为jsp不用重启服务 开发速度很快。我做小项目就是这种模式,以后小项目的更改也会很少,所以不用搭建的过于复杂。

你感觉傻只是因为你限于经验的原因,所见的项目所用的方法不多而已。
从基本的使用方式来说,在service层是面向于具体的实现功能,所有的数据库的具体操作在Dao层实现。在实际的项目中,很多的功能都是需要多个Dao进行组合的,还有一些功能方法可能根本不用DAO的都是在service层实现,service层是一个项目的核心模块,所有定义的功能都在这,在Action中需要调用的只是这些功能的方法名。
从具体的应用来看,则是,在实际的开发过程中,客户的需求功能会经常变化的,功能的添加和减少是很正常的事情,而代码的编写则是以最少的改动来实现目标,分层是对效率的优化。这在练习一些小项目中是感觉不到的,呵呵。
说白了,就是存在即合理,有需求才有这种模式的存在,希望对你有帮助。

你做的是个简单的业务

比如一个