在S2SH项目中,有些会出现Dao包里面的接口声明和Service里面的接口声明完全一样,而且service层也是直接调用dao层,那么为什么不干脆用一个就好了呢?
这里说明一下,dao层是专注与数据库的单个表进行操作(有的时候会有复杂的表关联,但是总体来说,是这样的),而service层是对dao对象进行操作,有可能用多个dao对象返回的结果进行再处理,这就是它们之间的不同,为了减少代码的耦合,分开还是有一定的必要的。
其实,dao数据层和service业务层还有action控制层,并没有那种层次很分明的关系,有的时候,业务简单了,就可以都放在dao里面直接处理,有的时候,dao层中复杂了,也要移到service层中,不同的情况是需要灵活把握的。