MVC和三层架构有什么区别


三层架构是一种软件架构风格——分层架构。MVC是分层架构的一种模式。
一些不同的框架都自称实现了MVC,这在一定程度上导致了概念的混淆。有的实现了三层架构的全部三个层次,如SSH。有的只实现了视图层和业务层的一部分,如Struts。有的则完全是在视图层。当完全在视图层时,其实就不叫MVC了,应该叫MVP。


Java Web应用的结经历了Model1和Model2两个时代,从Model1发展到Model2既是技术发展的必然,也是无数程序员的心血结晶。
在Model1模式下,整个Web应用几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接作出响应。用少量的JavaBean来处理数据库连接、数据库访问等操作。
Model1模式的实现比较简单,适用于快速开发小规模项目。但从工程化的角度看,它的局限性非常明显:JSP页面身兼View和Controller两种角色,将控制逻辑和表现逻辑混杂在一起,从而呆滞代码的重用性非常低,增加了应用的扩展和维护的难度。
早期由大量JSP页面所开发出来的Web应用,大都采用了Model1架构。实际上,早期绝大部分ASP应用也属于这种Model1的架构。
Model2已经是基于MVC结构的设计模式。在Model2架构中,Servlet作为前端控制器,负责接收客户端发送的请求,在Servlet中只包含控制逻辑和简单的前端处理;然后,调用后端JavaBean来完成实际的逻辑处理;最后,转发到相应的JSP页面处理显示逻辑。
Model2下JSP不再承担控制器的责任,它仅仅是表现层角色,仅仅用于将结果呈现给用户,JSP页面的请求与Servlet(控制器)交互,而Servlet负责与后台的JavaBean通信。在Model2模式下,模型(Model)由JavaBean充当,视图(View)由JSP页面充当,而控制器(Controller)则由Servlet充当。

总结:

MVC和三层架构
MVC与三层架构类似么?
View-UI Layer  |   Controller-Bussiness Layer  |  Model-Data Access Layer
其实这样是错误的
MVC是表现模式(Presentation Pattern)
三层架构是典型的架构模式(Architecture Pattern)
三层架构的分层模式是典型的上下关系,上层依赖于下层。但MVC作为表现模式是不存在上下关系的,而是相互协作关系。即使将MVC当作架构模式,也不是分层模式。MVC和三层架构基本没有可比性,是应用于不同领域的技术。
MVC模式与三层架构:
ui (view)←(contorller)
*****↓********↓*******
bl    (model)
***********************
da 

参考:http://www.open-open.com/lib/view/open1329705026733.html

你可能感兴趣的:(MVC和三层架构有什么区别)