1

我刚刚阅读了应用架构指南。在本篇中,谷歌展示了使用新的 Android 架构组件构建健壮的 Android 应用程序的基本指南。正如 今年的 Google I/O所示,一个应用应该有 4 层:

在此处输入图像描述

依赖关系从上到下流动,更高层只知道它们正下方的组件,例如。UI Controller只知道ViewModelViewModel只知道Repository等。

所以我观看了视频,完成了相应的代码实验室,然后我研究了该指南,在粗略了解之后,我开始编写本指南中讨论的用例。

该指南的目的是实现一个应用程序,该应用程序只需从后端获取一个用户对象并将其显示给用户,所有这些都与干净的架构有关。

当我开始编写这个用例时,我的问题就出现了。整个应用程序都依赖于这个User Pojo。Repository 从后端获取它,然后使用Room将其持久化到 DataSource 中,并在LiveData的帮助下通知 ViewModel 和 UI。所以**我的数据模型的定义应该在哪一层——在这个用例中是User Pojo——**。或者每一层都应该有一个用户 Pojo,该用户 Pojo 将从来自较低层的用户 Pojo 映射?

4

2 回答 2

0

您可以使用一些实体类 (POJO) 来表示在缩小范围(数据源层)中获取数据的方式。实际代表您的业务模型的域类应该基于实体类。理想情况下,它们应该由您的存储库(数据的入口点)公开,这将需要处理来自您可能拥有的许多来源的响应,并将它们转换为外部世界可以理解的模型。这样,您就不会依赖于您的数据源可能会随着时间而遭受的许多更改,并且您的域保持一致。

于 2017-09-19T01:18:27.420 回答
0

如果您愿意,我会在图片中添加一个“层”:模型或域。说到房间,模型是一组简单的 POJO 对象。模型层与其他层没有关系,但它可以是图片中所有其他层的引用。

于 2017-09-18T18:17:48.170 回答