MVC和MVP模式的区别

首先先简单分析下两种模式

 MVC: 

  M:Model(模型)   数据层,联网请求的数据写到这里

  V:View(视图)      Activity、Fragment等界面显示

  C:controller(控制器) 

       MVC和MVP模式的区别_第1张图片

      他是一种框架模式而并非设计模式,View既依赖于Controller又依赖于Model,View同时含有Controller与Model的引用;UI逻辑同时存在于View与Model之间导致业务逻辑与UI逻辑无法分离,在修改UI逻辑时, 也需要修改Model, 降低了架构的灵活性,增加模块耦合, 影响重构。

 

MVP:

M:model 数据层,业务逻辑和数据处理(数据储存,网络数据请求,复杂算法,耗时操作);
V:view 界面层,与 View 的操作都写到这里,负责界面绘制,与用户交互;
P:presenter 解耦关联层(model - view),负责完成View与Model之间的交互(presenter 是双向绑定的,要注意接口和抽象的 使用,尽可能降低代码耦合度);

MVC和MVP模式的区别_第2张图片

 

 

MVC   MVP对比

MVP优点:
1>:如果哪个部分出了问题方便修改,数据层出问题找M、界面层出问题找V、数据处理出问题找P,如果只是界面上的调整,方便修改;
2>:方便多人进行协作开发;
3>:业务逻辑复用增强(适用于大型项目);                                                                                                                           
MVP缺点:
1>:接口回调超级多;
2>:类变得多了,逻辑看上去比较复杂(和泛型结合才能解耦);

 

你可能感兴趣的:(MVC和MVP模式的区别)