MVC和MVP的区别
MVP与MVC的区别(图解)
MVC

MVP

* 1. 结构

MVC中Model和view层是有交互的,比如自定义view中是直接使用model层的数据,在MVP中model层和view层不直接进行交互,需要调用presenter完成

* 2. 内容

MVC: view对应自定义view和xml布局
controller对应activity和fragment

MVP: view层对应activity和fragment
presenter层对应控制逻辑,是view和model之间的桥梁

* 3. 实现方式

MVC中大多数代码都存在与activity和fragment中,文件结构简单,但是容易一个类很多代码。
MVP中把交互逻辑抽到了presenter层,所以要新建很多类。

MVP优势:

  1. 模型和视图完全分开(1.修改视图而不改变模型,可以更高效的使用model)
  2. presenter复用
  3. 如果把逻辑都放在presenter中就能脱离用户接口实现单元测试