关闭

Android MVP 如何组织表示层

346人阅读 评论(0) 收藏 举报
分类:

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1895597次
    • 积分:34202
    • 等级:
    • 排名:第139名
    • 原创:1330篇
    • 转载:595篇
    • 译文:93篇
    • 评论:272条
    博客专栏
    android

    文章:117篇

    阅读:42675
    文章分类