一直不太明白,就是在后端开发,比如java中,用框架开发,为什么就是需要controller层,再到service层,再到mapper层呢?什么不能直接controller层直接到mapper层呢?或者直接mapper层呢?让大家见笑了,一直没理解得了,谢谢了
分层可以提高程序的复用性,客户端发送过来的数据和你的SQL并不产生强关系(假设你只有controller和mapper),一定会经过逻辑的处理。这其中包含数据校验,在业务逻辑上的相互调用。
控制层的主要作用就是前后端的数据交互,或者控制跳转(非前后端分离项目中);mapper层主要负责和数据库进行交互,封装数据;而service层的作用就是实现你的业务功能逻辑,这样做之后会减少很多冗余代码。
刚开始在学习阶段,或者业务不复杂的时候这一点几乎体现不出来,也不用做功能模块的划分,但是以后接触企业级项目自然就有体会了,包括为什么要设计接口和实现类这样的关系?也是因为一个接口会有多个业务场景,道理是一样的。
总是,保持良好的编程思维和习惯就好,做过几个项目之后就能够理解了。
有帮助请采纳,还有不懂的可以继续追问~
因为职责问题,系统扩展维护问题,在业务复杂不断扩充情况下,你就知道它的好处了
分层思想 也就是 框架的中心思想 解耦合 降低耦合性 耦合性越低 代码复用率越高 维护起来更简单
这里有一个设计原则需要先理解下,就是关注分离点https://zhuanlan.zhihu.com/p/54625074
人的大脑不能同一时间去记忆太多的问题,将不同的问题放在不同的层次。这样当你进入不同的层次时,只需要关注该层次的问题即可,而不需要关注其他层的问题。这样设计的好处就是,不同的业务被划分成了不同的层次。比方说,dao就是和数据库操作相关联的层而不会设计到其他层,即使和其他层之间有依赖关系也是通过统一的入口或者接口来提供功能给其他层调用。这样也达到了各个层次之间弱依赖,解耦