Android中Mvp与Mvc模式的区别

时间:2021-06-10 21:16:18

MVC简介

       使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。


MVC缺点:

  在MVC里,View可以直接访问Model,从而View里会包含Model信息,不可避免的还要包括一些业务逻辑。所以当交互比较复杂,view又比较多变的情况下,更改view比较困难,view中的业务逻辑是无法复用的。


MVP简介:

与MVC重大区别:在MVP中View并不直接使用Model,它们通信是通过Presenter来进行的,而MVC中View会从Model中直接读取数据而不是Controller。


MVP优缺点:

Presenter把M和V完全分离开,交互逻辑都在Presenter里实现,而且P与V没有直接关联,是通过定义好的接口进行交互,从而使变更View时可以保持P不变,即重用!该模式下开发起来结构清晰易懂,耦合度低,但是代码量文件数量会变大。


举例:

在MVC模式下,Activity给人的感觉是View + Controller,有view还有交互逻辑,因此一个Activity有可能会变得很庞大,

但是在MVP模式下,Activity约等于View这一层,然后有专门的Presenter来负责交互逻辑,大体可以这样理解吧。