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的改变也能自动反馈到数据层,数据成为主导因素。