1.Q:为什么要分层解耦?
如果把所有的业务逻辑都写在一个代码段里,会导致代码复用性差且难以维护。
2:分层解耦要满足什么原则以及每一层要完成什么功能?
单一职责原则:每一模块的代码只负责自己模块的功能。
每一层要各自要完成的功能:数据访问
逻辑处理
接受请求和响应数据
3.分为哪几层?每一层什么功能?
controller : 控制层 ,++接收前端发送的++ ++请求++ ++,对请求进行处理,并++ ++响应++ ++数据。++
service : 业务逻辑层 ,++处理具体的业务逻辑。++
dao : 数据访问层 (Data Access Object) (持久层) ,++负责数据访问操作,包括数据的增、删、改、查。++
个人理解:
从左至右是web服务器接受请求的过程
从右至左是web服务器给浏览器响应数据的过程
浏览器-----》三层架构----》数据库
(例如:浏览器将前端接收到的数据返回给后端处理后并存入数据库)
浏览器《-------三层架构《-----数据库
(例如:数据库将数据交给后端处理后返回给前端进行页面渲染)
三层架构内部调用的细节:
拆分前后对比:
小结:
- 为什么要对代码进行拆分?
• 遵循单一职责原则,便于复用、后期维护- 拆分为了哪三层?每一层的职责是什么 ?
• controller :接受请求,响应数据
• service :逻辑处理
• dao :数据访问