使存储库在Clean Architecture的域层中不可见

时间:2019-01-26 18:30:53

标签: android kotlin clean-architecture

我最近听说过有关Clean Architecture的问题,并进行了研究,并试图通过自己的方式对其进行深入了解,我知道 Domain 模块(层)具有逻辑并且应该具有一些接口以及使用存储库的用例。据我了解,层无权访问其他任何层,但是数据演示文稿层可以访问,但彼此之间不相干。

我的存储库定义(接口)位于模块中,其实现位于 Data 模块中,然后由Dagger注入。另外,我有一些 UseCases 用于注入一些存储库。

我遇到的问题是, Presentation 模块可以访问存储库接口和用例,因为它们都在 Domain 模块中,并且使用gradle导入演示文稿层。

我认为不能同时访问 Presentation 模块,我正在使用Kotlin和 internal 关键字为每个模块隔离类,但使用数据模块需要访问存储库接口才能实现它们,我无法为其使用内部关键字,因此现在可以公开它们。

我的问题是,是否有可能以某种方式更改设计以仅公开用例?

1 个答案:

答案 0 :(得分:1)

如果import { GoogleAnalytics } from '@ionic-native/google-analytics'; 与数据相关(例如UseCase),则其接口应保留在ReadUserUseCase模块中,并且实现应移至domain模块。