http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.htmlhtml
在开发Android应用时,相信不少同窗遇到和我同样的状况,虽然项目刚开始构架时自认为MVC层级分的特别明确,但最终每每是一个Activity有好几百行代码,并且逻辑和UI显示彻底混杂在一块儿,致使后续项目的维护成本巨大。一个偶然的机会看到有种MVP模式(Mode-View-Presenter)能够比MVC更好的解耦和,而后好奇的研究了下这个模式并尝试在如今项目中进行推广。下面就把本身目前学习到知识总结出来。android
MVP模式将分为两篇博客进行总结:mvc
1、MVP简介学习
我理解的MVP是由MVC优化衍生出来的一种模式,MVP将MVC中的Controller层进行了优化而生成了Presenter。Presenter单词翻译为“提出者;任命者;主持人”,Presenter层和MVC的Controller同样,负责核心逻辑,但不同的是Presenter经过接口协议进行数据传递,并阻断了View和Model的直接联系,从而使View和Model更加专一于自身业务逻辑。测试
2、MVP结构优化
View.net
View一般来讲就是有Activity、Fragment实现的,View会包含一个或多个Presenter的引用来知足视图的业务逻辑。View和Presenter的交互是双向的,即View层能够调用Presenter的逻辑方法,Presenter也能够控制View的显示。翻译
Presenter
Presenter做为Model和View的桥梁,负责从Model拿到数据进行处理并返回给View。但Presenter和其余两层的沟通是经过接口协议进行的,因此每一个Presenter中一般会包涵一个或多个接口协议。
Model
和MVC同样,做为数据仓库只负责对APP数据进行处理。
Android开发MVP模式实践中的示例将APP分为如下四层。
3、MVP VS MVC
在把本来MVC模式的代码修改成MVP模式后,总结这两个模式在实际使用过程当中的不一样点基本上总结为两点:
4、总结
MVP将会为你的代码带来以下好处: