在学习SSH过程中总是会遇到这样的问题:MVC和三层架构是不是一个概念?肯定的说,他两就不是一个概念。所以就总结了一下自己的看法。可能会有理解错误的地方,希望可以交流交流。
二者混淆的原因
二者都是表现出了“三层”结构的思想,对于初学者而言,容易理解错。
二者在项目的构建过程中都会使用到。
二者的使用都是为了实现低耦合高内聚的目标。
二者概念不同
MVC是一种设计模式,百度定义是:是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
三层架构,通常意义上的三层架构就是将整个业务应用划分为:表现层、业务逻辑层、数据访问层。区分层次的目的即为了“高内聚,低耦合”的思想。
那么架构跟设计模式有什么区别呢?
从一个项目开始,首先,我们需要进行架构设计,一般我们采用的就是分层式的架构设计,即我们的三层架构。然后,在确定了架构以后,我们再根据项目的具体需求去考虑是否需要应用一些设计模式,比如是否应用我们的MVC模式。
二者划分层次不同
三层架构将项目划分为表现层、业务逻辑层、数据访问层三层。
MVC即为模型(Model)、视图(View)、控制器(Controller)。
同样是三层结构但是他们的对应关系并不是一一对应的,他们的关系应该是:控制器和视图构成表现层,而模型又划分为业务逻辑层和数据访问层。比如Struts就在SSH框架中担当了表现层的角色,它负责调用业务逻辑和视图的跳转和渲染。
二者使用范围不同
MVC设计模式是一种设计创建WEB应用程序的模式。主要应用于web项目中。
三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目。