如何尊重Android Clean Architecture

时间:2017-09-18 12:50:18

标签: android architecture clean-architecture

我刚读过the Guide to App Architecture。在此谷歌演示了使用新的Android架构组件构建强大的Android应用程序的基本指南。如this year's Google I/O所示,应用应该有4层:

enter image description here

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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