Android 开发模式和优秀框架那些事Android应用开发那些事面试题

Android 中 MVC、MVP 和 MVVM 对比

2019-08-16  本文已影响0人  因为我的心

一、前言:

MVC、MVP和MVVM是常见的三种架构设计模式,当前MVP和MVVM的使用相对比较广泛,当然MVC也并没有过时之说。

二、三种模式对比:

1. MVC

MVC (Model-View-Controller, 模型-视图-控制器),标准的MVC是这个样子的:

mvc.png

缺点:

2. MVP

MVP (Model-View-Presenter) 是MVC的演化版本,几个主要部分如下:


image.png

解释:

  1. 各部分之间的通信,都是双向的。
  2. View 与 Model 不发生联系,都通过 Presenter 传递。
  3. View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

优点:

  1. 降低耦合度,实现了 Model 和 View 真正的完全分离,可以修改 View 而不影响 Modle;
  2. 模块职责划分明显,层次清晰;
  3. 隐藏数据;
  4. Presenter 可以复用,一个 Presenter 可以用于多个 View,而不需要更改 Presenter 的逻辑;
  5. 利于测试驱动开发,以前的Android开发是难以进行单元测试的;
  6. View 可以进行组件化,在MVP当中,View 不依赖 Model。

缺点:

3. MVVM

MVVM 是 Model-View-ViewModel 的简写。和 MVP 模式相比,MVVM 模式用 ViewModel 替换了 Presenter ,其他层基本上与 MVP 模式一致,ViewModel 可以理解成 是 View 的数据模型和 Presenter 的合体。MVVM 就是将其中的 View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。


image.png

缺点:

  1. 数据绑定使得bug很难被调试

  2. 如果项目过大,数据绑定需要更大的内存


参考:

上一篇 下一篇

猜你喜欢

热点阅读