【开发模式】MVC、MVP、MVVM比较

发布时间 2023-09-12 13:55:35作者: Phoenixy

MVC开发模式

MVC (Model-View-Controller) 模型-视图-控制器:

  view接收用户请求,传递给Controller 对model进行增删改查并将结果渲染到视图。。                                                                                   中

标准的web应用程序有三部分组成:

  1、View:数据呈现,即展示数据

  2、Model: 数据,即管理数据

  3、Controller:接收并处理用户的请求,并将model返回给view;<即响应用户操作,将model更新到view上>

 

优缺点

 优点

  1、耦合性低,视图层和业务层分离 <即修改视图层代码,不需要重新编译模型即控制器代码>

  2、重用性高

  3、生命周期维护成本低

  4、MVC是开发和维护用户接口的技术含量降低

  5、可维护性高,分离视图层和业务逻辑层更易于web应用的维护和修改

  6、部署快

 

 缺点

  1、不适合小型及中等规模的应用程序

  2、视图与控制器间过于紧密连接,妨碍了他们的独立重用

  3、视图对模型数据的低效率访问会降低操作性能  

 

 

MVP开发模式

MVP (Model-View-Presenter) 模型-视图-主持 

MVC的改良模式

  Model:管理数据

  View:负责显示,且不负责同步逻辑并提供操作界面的接口以供Presenter使用

  Presenter:负责业务逻辑及同步逻辑 

 

优缺点

 优点

  1、模型与视图完全分离

  2、高效的使用模型 <交互仅发生在Presenter内部>

  3、可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑

  4、利于单元测试

 

 缺点

  视图和Presenter交互过于频繁,变更视图就需要变更Presenter

 

 

MVVM开发模式

MVVM (Model-View-ViewModel)

特殊的MVP模式

  view:封装用户界面和用户界面的逻辑,即定义视图及其可视界面布局和央视中包含的控件

  ViewModel:封装视图的表示逻辑和状态,即负责协调Model和View

  Model:封装业务逻辑和数据,即负责管理应用程序的数据并将所需的业务规则和数据验证逻辑封装,确保一致性和有效性