mvc:
- View:XML布局文件。
- Model:实体模型(数据的获取、存储、数据状态变化)。
- Controller:对应于Activity,处理数据、业务和UI。
缺点:view表现力比差,activity会承担一些view和controller的角色。导致代码臃肿。
MVP
View: 对应于Activity和XML,负责View的绘制以及与用户的交互。
Model: 依然是实体模型。
Presenter: 负责完成View与Model间的交互和业务逻辑。
优点:解决了activity充当两种角色的问题,让activity只当界面。
缺点:业务多时,p层会有大量的接口,导致代码臃肿。
MVVM
View:对应于Activity和XML,负责View的绘制以及与用户交互。
Model: 实体模型。
ViewModel: 负责完成View与Model间的交互,负责业务逻辑。
优点:数据驱动型,低耦合,控制器代码数量急剧减小。
缺点:数据绑定bug难以调试,model很大时,如果不释放会耗费内存。不利于view的复用。