MVC  MVP MVVM

162 阅读1分钟

MVC

View:XML布局文件。 Model:实体模型(数据的获取、存储、数据状态变化)。 Controller:对应于Activity,处理数据、业务和UI。

  • 这样Activity就充当了View和Controller两个角色,

MVP

优点

  • 解决Activity代码过长

缺点

  • 复杂的业务导致P层太大。
  • V层和P层有一定的耦合度,一旦V层修改P层就必须修改。
  • 接口粒度不好控制,粒度太小,就会存在大量接口,是代码太过碎片化;粒度太大,解耦效果不好。
  • MVP是以UI为驱动的模型,更新UI都需要要保证能获取到UI的引用,判断是否在UI线程,Activity是否销毁。
  • MVP是以UI和事件为驱动的传统模型,数据都是被动的通过UI控件做展示.

MVVM

数据驱动

  • 数据变化后会自动更新UI,UI的改变也能自动反馈到数据层,数据成为主导因素。

参考

如何构建Android MVVM 应用框架