Android MVP 如何组织表示层

翻译 2016年05月30日 12:51:28

MVP(模型视图表示)模式来源于众所周知的MVC(模型视图控制器),这一段时间是目前在Android应用程序开发越来越重要的衍生物。有越来越多的人谈论它,但是却又很少有可靠和结构化信息。

什么是MVP?
MVP模式允许表示层逻辑中分离出来,从而使该接口是如何工作的一切是从我们如何代表它在屏幕上分开。理想情况下,MVP模式将实现这一同样的逻辑可能有完全不同的看法互换。
澄清第一件事是,MVP是不是一种架构模式,它只是表示层负责。在任何情况下,它始终是更好地将它用于不使用它在所有的架构。

为什么要使用MVP?
Android中,我们有从这一事实的Android活动密切耦合到接口和数据访问机制所产生的问题。我们可以发现极端的例子,如CursorAdapter的,它搭配适配器,这是视图的一部分,使用游标,这东西应该被降级到数据访问层的深处。
对于应用程序可以很容易地扩展和维护,我们需要定义很好地分离层。我们该怎么办,如果明天,而不是从数据库中检索相同的数据,我们需要从Web服务呢?我们将不得不重做我们的整个看法。
MVP使我们的数据源视图无关。我们把应用程序分为至少三个不同的层次,这也让我们分别测试它们。随着MVP,我们能够从活动占据了大部分的逻辑出来,使我们可以在不使用仪器测试进行测试。



如何为Android实现MVP
那么,这是在这一切开始变得更加分散。有MVP,每个人的许多变化可以调节模式的理念,以他们的需求,他们感觉更舒服的方式。该模式在变化的责任,我们委托给主持人量基本上依赖。
认为负责启用或禁用一个进度条,还是应该由主持人来完成?又是谁决定哪些行动应在操作栏显示?这就是艰难的决定开始。我将展示如何我平时工作,但我想这篇文章更多的是讨论的地方,如何申请MVP,因为到知道有没有“标准”的方式来实现它严格的准则。

表示
表示负责充当视图和模型之间的中间人。它从模型中检索数据并返回格式化的视图。但不同的是典型的MVC,它也决定,当你与视图互动会发生什么。
视图
视图,通常由活动实现的(它可能是一个片段,查看...取决于应用程序的结构),将包含对主持人的参考。主持人将由依赖注入,如匕首理想地提供,但如果你不使用这样的事情,这将是负责创建演示对象。该视图会做的唯一事情就是打电话从每有一个界面操作(点击一个按钮为例)时间演示的方法。
模型
在具有良好的分层架构的应用程序,这种模式只会是通往领域层或业务逻辑。如果我们使用了Bob大叔干净架构,模型很可能是实现用例交互件。但是,这是我想在以后的文章,讨论另一个话题。现在,它足以把它看作我们要在视图中显示数据的提供者。


一个例子

https://github.com/antoniolg/androidmvp

【Android 进阶(一)】Android MVP框架实现过程

MVP框架实现过程目的:View层和Model层分离,中间由Presenter处理逻辑。Prester作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。这里我们只说明View和Pres...
  • qq_22939165
  • qq_22939165
  • 2015年12月15日 00:14
  • 1564

浅谈MVP实现Android应用层开发

之所以要谈这个话题是因为你在开发App时可能会发现,Activity担负的责任非常之重,如果站在MVC框架角度看自己开发的App,一般xml布局文件科Activity的setContentView等充...
  • yanbober
  • yanbober
  • 2015年05月12日 10:36
  • 16498

MVP:如何组织Presentation层

by Antonio Leiva | Apr 15, 2014 | Blog, Development | 108 commentsMVP (Model View Presenter) pattern...
  • GodLoveMichaelHe
  • GodLoveMichaelHe
  • 2016年01月13日 11:39
  • 302

Android当中的MVP模式(七)终篇---关于对MVP模式中代码臃肿

个人博客:CODE FRAMER BIGZ MVP系列文章配套DEMO Android 当中的 MVP 模式(一)基本概念 Android 当中的 MVP 模式(二)封装 ...
  • sinat_33661267
  • sinat_33661267
  • 2017年11月05日 21:33
  • 121

android MVP——mvp架构的应用和优化

MVP架构在android还是很好用的。我也在试着将mvp用在项目中。下面我就来说说mvp模式的应用和优化。mvp模式的概念MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Contr...
  • yehui928186846
  • yehui928186846
  • 2016年05月27日 20:06
  • 4083

Android单元测试<中>(Android官方MVP架构示例项目解析)

解读Android官方MVP项目单元测试分析得很到位 ——本篇以此为基础,有所补充 本文通过分析Android官方MVP项目中最基础的todo-mvp/示例项目,来归纳如何测试。(本篇...
  • yuanyang5917
  • yuanyang5917
  • 2016年05月23日 00:21
  • 929

Android----MVP模式的理解

本篇文章基于MVP模式对mvp设计模式进行了实践,作者对mvp进行了很详细的介绍,推荐大家看看。一、MVP的理解在Android开发中,Activity和Fragment承载了太多的开发任务,它们不仅...
  • qq_23589445
  • qq_23589445
  • 2016年02月13日 15:12
  • 675

Android mvp 架构的自述

最近发现再也无法忍受越来越臃肿的Activity代码,越来越来混乱的Activity层的代码,投入到了MVP的怀抱。目前来看MVP的架构还是很适合Android的,在这里记录一下一点心得,希望都给想用...
  • DanteStones
  • DanteStones
  • 2016年03月17日 17:51
  • 6396

说说Android的MVP模式

安卓应用开发是一个看似容易,实则很难的一门苦活儿。上手容易,看几天Java,看看四大组件咋用,就能整出个不太难看的页面来。但是想要做好,却是很难。系统框架和系统组件封装了很多东西,开发者弄几个Acti...
  • hitlion2008
  • hitlion2008
  • 2016年02月11日 12:47
  • 4344

ym——Android开发MVP模式(解决了View和Model的耦合)

1、模型与视图完全分离,我们可以修改视图而不影响模型 2、可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部 3、我们可以将一个Presenter用于多个视图,而不需要改变...
  • cym492224103
  • cym492224103
  • 2014年08月23日 11:00
  • 10198
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android MVP 如何组织表示层
举报原因:
原因补充:

(最多只允许输入30个字)