service层的作用

在Struts中action是处理业务逻辑的,如果加一个service层是不是有点多余啊?而加一个service层又有什么好处呢?
[该贴被taotaob于2009-03-01 09:29修改过]

>在Struts中action是处理业务逻辑的
这是错误的,action不是处理业务逻辑的,你被误导了。

参考本站 MVC 标签,那里对action作用讨论很多,action是MVC模式中C,也就是controller,是用来调度业务逻辑层Model和前台显示V之间的关系的,也就是说:它是一个人民调解员,是一个指挥交通的警察,你难道让指挥交通的警察帮你跑腿代办业务?

banq说的正确,楼主你理解错了。struts,以及SERVLET都是MVC中的C,就是控制层。只负责控制,具体业务实现,不在这里处理。有专门的业务服务层。而且楼主在实现业务服务层要注意面向接口编程,实现松耦合。如果有必要,加入中间对象,实现控制层和业务层完全解除藕合。一般的应用,只需要通过接口编程,实现松耦合就可以了。

之所以三层分离,原因之一就是,你的表示层可能以后发生变化,比如支持SWING富客户端等

其实,我在工作中发现,有很多人都是在控制层中写业务逻辑,比如在struts中的ACTION,JSF中的actionForm等。 有不少人对MVC都是一知半解。却已经做了N多年项目了,当然大多数项目都谈不上企业级应用,或者说都不是J2EE应用项目。

楼主所说:“如果必要,加入中间对象,实现控制层和业务层完全解除耦合” 这句话的思想我不是很理解;加入的中间对象起到什么作用?请解释一下。

2009-05-16 19:56 "@spikeme"的内容
banq说的正确,楼主你理解错了。struts,以及SERVLET都是MVC中的C,就是控制层。只负责控制,具体业务实现,不在这里处理。有专门的业务服务层。而且楼主在实现业务服务层要注意面向接口编程,实现松耦合。如果有必要,加入中间对象,实 ...

楼主所说:“如果必要,加入中间对象,实现控制层和业务层完全解除耦合” 这句话的思想我不是很理解;加入的中间对象起到什么作用?请解释一下。