类似与公司的组织架构
MVC
就是其中的一种拆分方式阿里开发手册中,关于工程结构部分,定义了常见工程的应用分层结构
那么什么是应用分层呢?
应用分层是一种软件开发设计思想,它将应用程序分成 N
个层次,这 N
个层次分别负责各自的职责,多个层次之间协同提供完整的功能,根据项目的复杂度,把项目分成三层,四层或者更多
常见的 MVC
设计模式,就是应用分层的一种具体体现
在最开始的时候,为了让项目快速上线,我们通常是不考虑分层的,但是随着业务越来越复杂,大量的代码混在一起,会出现逻辑不清器、模块项目依赖、各模块相互依赖、代码扩展性差、改动一处就牵一动而发全身等问题。
所以学习对项目进行分层就是我们必须要的了
我们上一节中学习的“MVC
”,就是把整体的系统分成了 Model
(模型),View
(视图)和 Controller
(控制器)三个层次,也就是将用户视图和业务处理隔离开,并且通过控制器连接起来,很好地实现了表现和逻辑的解耦,是一种标准的软件分层架构
目前现在更主流的开发方式是“前后端分离”的方式,后端开发工程师不再需要关注前端的实现,所以对于 Java
后端开发者,又有了一种新的分层架构:把整体架构分为表现层、业务逻辑层和数据层。这种分层方式也称为“三层架构”
可以看到,我们前面写的代码,并不符合这种设计思想,而是所有代码堆砌在一起
按照上面的层次划分,Spring MVC
站在后端开发人员的角度上,也进行了支持,把上面的代码划分为三个部分:
这三个部分,在 Spring
的实现中,均有体现:
Controller
:控制层。接收前端发送的请求,对请求进行处理,并响应数据Service
:业务逻辑层。处理具体的业务逻辑Dao
:数据访问层,也称为持久层。负责数据访问操作,包括数据的增、删、改、查关于二者的关系,一直存在不同的观点。有人认为三层架构是 MVC
模式的一种实现,也有人认为 MVC
是三层架构的替代方案,等等各种说法都有。根本原因是大家站在不同的角度来看待这个问题
从概念上来讲,二者都是软件工程领域中的架构模式
MVC
架构模式由三部分组成,分别是:模型(Model
),视图(View)和控制器(Controller
)MVC
中,视图和控制器合起来对应三层架构中的表现层,模型对应三层架构中的业务逻辑层,数据层,以及实体类二者其实是从不同角度对软件工程进行了抽象
MVC
模式强调数据和视图分离,将数据展示和数据处理分开,通过控制器对两者进行组合Service
层)和数据访问层(Dao
层)但是二者的目的都是相同的,都是“解耦,分层,代码复用“
高内聚低耦合矛盾吗?
不矛盾,高内聚指的是一个模块中各个元素之间的联系的紧密程度,低耦合指的是各个模块之间的紧密程度
这就好比一个企业,包含很多部门,各个部门之间的关联关系要尽可能的小,一个部门发生问题,要尽可能降低对其他部门的影响,就是耦合。但是部门内部员工关系要尽量紧密,遇到问题一起解决,克服,这就叫内聚
比如邻里邻居,楼上漏水,楼下遭殃,就是耦合。家庭一个成员生病,其他成员帮忙照顾,就叫内聚。一个家庭内部的关系越紧密越好,一个家庭尽可能少的影响另一个家庭,就是低耦合
DO
/ BO
/ DTO
/ VO
/ `AO常见命名风格介绍
UserController
userController
_
),作用单词间的分隔符,一般小写,又叫下划线命名法,比如:user_controller
-
) 作用单词间的分隔符,又叫脊柱命名法,比如:user-controller