您的位置:首页 > 移动开发 > Android开发

Android MVP 介绍

2016-03-12 22:17 337 查看
原文地址:

http://antonioleiva.com/mvp-android/#

MVP (Model View Presenter) 模式是广为人知的MVC(Model View Controller)模式的一种衍生品,在最近一段时间,它逐渐受到Android开发者的重视,越来越多的人开始谈论它。但是,网络上却缺少可靠和严谨的文章来介绍MVP这种新的模式,这就是我为什么要用这个博客来鼓励大家讨论,希望把所有的知识以最好的方式应用到我们项目中。



什么是MVP

MVP模式把数据的展现从业务逻辑中分离出来,所以界面的工作和我们怎样展现数据是分离开的。MVP模式完美地支持在View不同的情况下,有着相同的业务逻辑。

需要澄清的是,MVP模式不是一种架构模式,它只是负责展示层,但是在任何情况下,我们使用它会比不使用它要好。

为什么使用MVP

在Android开发中,经常遇到这样一个问题,Activity和界面交互,数据的获取机制都保持着高度耦合。我们可以找到一个例子:CursorAdapter,它混合着View层的组成部分-Adapter和获取数据相关-Cursor。

为了增强一个程序的可扩展性和可维护性,我们需要定义一个良好的分层。哪一天,我们不再从数据库中获取数据,而是从网络接口中获取数据,我们是不是要重新修改整个View(这里View代表层级,指Activity,Fragment)。

MVP让View层和数据源保持独立,我们把应用的结构至少分成3层,分别单独的测试它们。MVP可以把大部分逻辑从Activity中分离出来,以至于我们可以用Java单元测试来测试它们而不使用instrumentation

如何实现MVP

MVP有很多种写法,每个人可以根据项目的具体需求去调整MVP的的写法。

presenter

presenter 层的职责相当于View和Model的中间人,它从Model中获取数据,然后以某种格式交给View。和典型的MVC不同的是,MVP还决定了如何和View进行交互。

view

view层通常会被Activity实现(也可能是Fragment,View,具体看项目设计),它持有presenter引用,每当用户触发事件(比如按钮点击)时,view会调用presenter中的一个方法。

model

在一个结构良好的应用程序中,model只是作为业务逻辑的入口。

MVP Demo on Github
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android mvp