现在做系统越来越倾向于把系统与外界的交互设计的很薄, 和封装一层很薄的一层
为什么呢?
因为你的系统与外界交互的部分变化的最快, 如: 一个网站中 controller 层, 还有一个 mvvm 的 v 和 vm 层
下面是我自己的原则:
controller 只会跟 http 有关的东西进行处理 , 严禁把 res, req 对像以任何行式传入 service
controller 会对 http 方法的请求参数, cookie, session, template, redirect, 进行调用, 而在 service 不能有任何调用
而在前后端分离的项目中, 还会有一个 api 层进行接口的调用, 如果是数据库, 则 model 是直接返回数据库中的数据, 不需要进行处理
mvvm 框架如 vue 中, 由于界面的交互操作对象的数据模型, 与后端接口的模型不一致, 多出了一个 vmvm 与 m, 还要实现双向互转, vm => m, 还有 m => vm , 这样中间就需要一个转化层
因此在 vue 中, 我会写一个 api 层专门调用接口, 而 service 则专门进行 vm 与 m 的互转, vue 中的 method 则调用 service 进行转换, 并对 vm 进行操作
service 代码的多少, 是接口有多不匹配 vm 决定的越不匹配, service 的代码会越多
来源: http://www.bubuko.com/infodetail-2544229.html