我最近听说过有关Clean Architecture的问题,并进行了研究,并试图通过自己的方式对其进行深入了解,我知道 Domain 模块(层)具有逻辑并且应该具有一些接口以及使用存储库的用例。据我了解,域层无权访问其他任何层,但是数据和演示文稿层可以访问域,但彼此之间不相干。
我的存储库定义(接口)位于域模块中,其实现位于 Data 模块中,然后由Dagger注入。另外,我有一些 UseCases 用于注入一些存储库。
我遇到的问题是, Presentation 模块可以访问存储库接口和用例,因为它们都在 Domain 模块中,并且使用gradle导入演示文稿层。
我认为不能同时访问 Presentation 模块,我正在使用Kotlin和 internal 关键字为每个模块隔离类,但使用数据模块需要访问存储库接口才能实现它们,我无法为其使用内部关键字,因此现在可以公开它们。
我的问题是,是否有可能以某种方式更改设计以仅公开用例?
答案 0 :(得分:1)
如果import { GoogleAnalytics } from '@ionic-native/google-analytics';
与数据相关(例如UseCase
),则其接口应保留在ReadUserUseCase
模块中,并且实现应移至domain
模块。