一,MVP和MVC的区别
MVP是Model View Presenter的缩写,是由MVC演化而来的,那么MVP和MVC的区别是什么呢,
从上图中可以看出,MVC之间是允许View和Model进行交互的,而MVP中的View和Model交互必须通过Presenter这个中间人进行操作的。
传统的MVC:
- Model:业务逻辑和实体模型;
- View:对应的布局文件;
- Controllor:对应的Activity;
这种模式其实View能做的事情基本上没有什么,数据绑定和事件监听等等事情都是在Activity中完成的,实际上Activity既做了Controllor的事情,又做了View的事情。会导致Activity中的代码量很大,从阅读和维护方面来讲都是比较吃力的。
新兴的MVP:
- Model:业务逻辑和实体模型;
- View:对应Activity,负责绘制View及用户交互的过程;
- Presenter:负责完成View和Model之间的交互;
将架构模式改为MVP的时候,这时候将复杂的业务逻辑和耗时操作等职责都交给了Presen