Service层内容是更具哪个来写
我很好奇,大家的service层是围绕,哪个来写的,是更具model里面的功能来写单独的模块,然后再controller里面组合,还是直接更具controller里面的内容来写,我更具controller来写,感觉其实写直接在controller里面差不多,只能说一部分的功能可以重复调用,大部分还是无法的复用,感觉有点点鸡肋的感觉
最大的作用就是解耦和提高复用性,试想一下,例如我的很多个模块都需要查询一次用户信息,以往的做法都是在各个控制器中写一次:
如果我做成服务,那就可以这样写:
后续如果有更改,我只需要更改
userService
中的代码就可以,不需要每个调用的地方都要去修改。或者以往获取数据都是通过User这个模型去获取,我需要加缓存层来获取用户信息,那么我只需要修改userRepository
中的代码就可以。 使用service
有好几种写法:一种是控制器处理简单的数据校验,调用
service
,service
里调用不同的数据仓库组合完成一组服务;一种是
service
和数据仓库一样符合单一原则,控制器除了数据校验,就是通过调用单一的service
来组合完成需要完成的事,后续service
的调用依赖于前面service
返回的结果。还有一种就是
service
实现interface
,interface
里写好了传的参数类型、个数和返回值的类型。