如何尊重Android Clean Architecture

如何尊重Android Clean Architecture

问题描述:

我刚刚读了the Guide to App Architecture。在此谷歌演示了使用新的Android体系结构组件构建健壮的android应用程序的基本指导。如图所示this year's Google I/O一个应用程序应具有4层:如何尊重Android Clean Architecture

enter image description here

当依赖关系从顶部流至底部具有更高的层仅具有直接在它们下面,例如组件的知识。 UI控制器只知道视图模型视图模型只知道

所以我观看的影片,完成了相应的codelabs,然后我研究的指导和具有粗糙的理解,我开始后来编写本指南中讨论的用例。

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

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

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

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