首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在演示者、域和数据层之间实现适当的MVP Android依赖?

如何在演示者、域和数据层之间实现适当的MVP Android依赖?
EN

Software Engineering用户
提问于 2017-12-01 13:50:48
回答 1查看 501关注 0票数 3

我试图理解更好的Android.To上的MVP架构,我想从一开始就在安卓项目上实现MVP。

首先,我尝试使用一个模块,即app(Application ),但我的应用程序开始增长得有点快,因为expected.And测试需要花费很长时间才能完成,否则它们会给我一个错误,永远不会通过。我想我做了这个版本的应用程序非常紧密耦合。

接下来我要做的就是使用3个模块项目。

-应用程序(应用模块)

-域层

-数据层

开始阅读关于建立依赖性的文章,我想我走到了一个十字路口。

我理解域层,必须并且应该是独立的。

因此,依赖应该像这个应用程序->依赖于域层或数据层,还是两者兼而有之?数据层->依赖于域层

EN

回答 1

Software Engineering用户

发布于 2017-12-01 18:32:30

首先,让我们来讨论MVP的一些显而易见的部分:

  • 视图只负责UI。它从演示者那里获得其信息,并在那里转发其输入。因此,视图应该只依赖于演示者。
  • 演示者在那里向UI提供数据,并根据视图提供的输入操作模型。因此,它必须依赖于模型。
  • 模型实现了您的域逻辑,并且不应该依赖其他任何东西(除了标准库和一些自定义实用程序)。

数据访问属于何处,其依赖关系如何?这是MVP模式并不真正关心的事情。然而,标准的最佳做法仍然适用。

域层不应该依赖任何东西,包括数据访问层。另一方面,数据访问层必须依赖于域层,毕竟它必须创建域对象。有三种合理的选择:

  • 域层依靠数据访问层实现的接口来处理数据访问本身。
  • 域层对数据访问一无所知,数据访问由演示者处理。这在一定程度上违背了限制演示者将UI与模型连接起来的哲学,但在较小的项目中仍可能是实用的。
  • 您在演示者和业务逻辑之间引入了额外的API层。演示者与API层对话,API层具有对数据访问层的引用。理想情况下,这个层仍然不依赖于DAL,而是依赖于接口。DAL的具体实例被注入其中(参见依赖注入)。

*加分,如果两者都依赖于ViewModel,而不是视图和演示者之间的直接依赖关系。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/361664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档