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来负责交互逻辑,大体可以这样理解吧。