MVC和MVP的区别
MVC和MVP的区别
1.什么是MVC模式?
MVC是Model、View、Controller的缩写,分别代表Web应用程序中的3种职责。
M–>Model:用于存储数据以及处理用户请求的业务逻辑
V -->View:向控制器提交数据,显示模型中的数据
C–>Controller:根据视图提出的请求,判断将请求和数据交给哪个模型处理,处理后的有关结果交给哪个视图更新展示
1.1. 什么是基于Servlet的MVC模式?
M:一个或多个JavaBean对象,用于储存数据(实体模型)和处理业务逻辑(业务逻辑)
V:一个或多个JSP页面,向控制器提交数据和为模型提供数据提示,JSP页面主要使用HTML标记和JavaBean标记来显示数据
C:一个或多个Servlet对象,根据视图提交的请求进行控制,即将请求转发给处理业务逻辑的JavaBean,并将处理结果存放到实体模型JavaBean中,输出给视图显示
- 什么是MVP?
MVP 改进了 MVC 中 View 层重用的问题,由于 View 不再直接与 Model 层通信,因此 View 层的数据都来自 Presenter,View 没有部署任何的业务逻辑,所以利于 View 层重用。
3.MVC和MVP的区别
MVP 与 MVC 的直接区别就是 View 层与 Model 层不直接进行通信,而必须 要通过 Presendter 层,比较利于单元测试。
但是当我们的项目扩展的时候,可能有很多复杂的功能实现,此时就暴露了 MVP 中 P 层的代码过于冗余,变得不利于我们维护。