问问高手

service层到底有什么好处??actin不是直接可以调用dao层吗,为什么中间还得加个service层呢

[quote]service层到底有什么好处??actin不是直接可以调用dao层吗,为什么中间还得加个service层呢[/quote]

[size=x-large][color=red]
软件业一直在发展,将软件模块化,以提高可重用性.比如你在学校写个C语言的小程序,你可以直接把所有的代码写在main方法.如果代码多一点,有10000行.你一个main方法10000行,你觉得很乱吗?
这时,你就要把main方法中的代码分成块,分别放在几个函数里,这样看起来,就是main调用几个方法而已.这时结构是不是清楚一点.

在J2EE应用开发中,现在主流开发分为三层. 表示层,业务层,数据层.分别由Struts,业务层由Spring,EJB 来管理,数据层如Hibernate,JPA等.

为什么要把业务层的内容写在Service里.而不写在action里呢?业务的写在Service里,这样,你业务变化后,Action的内容不用变.这样Service对Action的影响就很小..

分层就是想降低各层之间的紧偶合关系..[/color][/size]

希望对你有些帮助..

action只是负责调用适当的业务逻辑对象并进行专访,而action调用的业务逻辑的对象不应该有aciton负责产生,所以有专门的层负责业务逻辑对象的产生,例如统一由spring产生,逻辑上更容易理解也更容易维护。

耦合性更密切