如何尊重Android清洁架构

如何尊重Android清洁架构,android,architecture,clean-architecture,Android,Architecture,Clean Architecture,我刚读过。在本文中,谷歌展示了使用新的android架构组件构建健壮的android应用程序的基本准则。如图所示,应用程序应具有4个层: 其中依赖关系从上到下流动,更高的层只知道它们正下方的组件,例如UI控制器只知道ViewModel,ViewModel只知道存储库等 所以我看了视频,完成了相应的代码实验室,然后我研究了指南,在粗略理解之后,我开始编写本指南中讨论的用例 该指南的目的是实现一个应用程序,该应用程序只需从后端获取一个用户对象并将其显示给用户,所有这些都与干净的体系结构有关 当我开

我刚读过。在本文中,谷歌展示了使用新的android架构组件构建健壮的android应用程序的基本准则。如图所示,应用程序应具有4个层:

其中依赖关系从上到下流动,更高的层只知道它们正下方的组件,例如UI控制器只知道ViewModel,ViewModel只知道存储库等

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

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

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

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

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

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

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