Model-View-Controller
Model-View-Presenter
MVC/P模式的核心都是为了将模型从视图/控制器中分离出来,从而使得模型独立于它们,因此模型不包含对视图和控制的引用。
Model 用于数据库的读写,或者网络数据的请求
View 就是普通的XML布局显示的视图
两者区别
Controller 包括对视图的渲染逻辑
Presenter 不包括对视图的渲染逻辑
个人笔记:
MVC 中 Controller 控制东西多,如果后期功能拓展,代码增加,维护起来很不方便
MVP 就是为了进一步降低和View的耦合度,提出采用Presenter来管理,但是减少了对视图的渲染逻辑
具体例子说明:http://android.jobbole.com/80915/
Android开发MVP模式解析 http://blog.youkuaiyun.com/guxiao1201/article/details/40147209
传统的MVC中三者之间都有交互,View(界面)触发事件—>Controller(业务)处理了业务,然后触发了数据更新—>不知道谁更新了Model的数据—>Model(带着数据)回到了View—>View更新数据,形成闭环,这样关系维护略显复杂;
MVP则是使用P截断了M与V之间的联系,降低了复杂程度,指责结构简单明了;
MVP VS MVC
在把原本MVC模式的代码修改为MVP模式后,总结这两个模式在实际使用过程中的不同点基本上总结为两点:
各个层之间通过接口协议进行沟通;
View和Model不再进行直接交互;
MVP将会为你的代码带来如下好处:
View和Model之间的耦合度降低,使其更关注自身业务逻辑;
便于单元测试;
代码复用率提高;
代码框架更适用于快速迭代开发;