首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android clean架构的分层结构

Android clean架构的分层结构
EN

Stack Overflow用户
提问于 2017-06-25 20:16:38
回答 2查看 292关注 0票数 7

我正在使用MVP模式构建一个架构整洁的android应用程序,并在数据层使用存储库模式。我对业务对象感到有点困惑。是否应该在表示中使用一个对象,在域/数据层中使用另一种类型的相同对象?如果是,那么何时何地将一个对象转换为另一种类型?

EN

回答 2

Stack Overflow用户

发布于 2017-06-25 23:01:08

虽然这在技术上是可行的,但通常不需要为表示层提供域实体的特殊表示。

有时,当表示层需要将多个实体捆绑在一起时(例如,显示参与聊天的两个用户的信息),您可能会发现自己处于合适的位置。在这种情况下,您可以定义一个包装器,将所需的实体捆绑在一起。

然而,在我的经验中,这种捆绑很少需要,而且是有代价的:表示层等待所有捆绑的数据,即使这些数据的一部分已经显示给用户(例如,关于一个用户的信息可以立即显示,但关于另一个用户的信息是从服务器获取的)。这降低了应用程序的感知响应性。

通常,对于客户端应用程序,域对象的方案通常从用户界面规范派生而来。因此,如果您发现自己正在考虑为表示层单独表示域对象,则很可能应用程序中已经存在以下设计问题之一:

应用程序中使用的

  1. 域对象与用于随着server
  2. Applicaiton's要求的发展而进行数据交换的域对象相同,但域对象没有相应地更改

您总是希望网络层与应用程序的其余部分解耦。这包括与服务器进行数据交换时使用的方案。如果您的域对象满足服务器API施加的约束,但不满足表示层的要求,那么最好在网络层和应用程序的其余部分之间引入“转换”逻辑。

如果应用程序的需求发生了变化,但是域对象没有相应地更新,那么,最好只审查设计并根据当前需求更新整个应用程序,而不是为表示层提供单独的表示。

票数 4
EN

Stack Overflow用户

发布于 2019-07-22 13:56:50

这不是MVP模式,但是,这个链接推荐Here's AndroidCleanArchitectureDemo很高兴在上面的链接上看到开源。

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

https://stackoverflow.com/questions/44746286

复制
相关文章

相似问题

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