在Clean Architecture中,存储库包含远程(改造)和本地(空间)数据源。我看到Remote是纯Kotlin模块。但是,由于Room需要访问Android上下文,因此Local是Android模块。
那么,由于本地模块,存储库必须是Android模块吗?如果是的话,您是否知道避免在Local模块中使用Context并使该模块成为纯Kotlin的任何抽象方法?
答案 0 :(得分:2)
编程语言之间没有区别。决定因素是它是否依赖于Android的任何组件(例如Context)进行操作。
我有一个用kotlin编写的模块,它是java-library
。该库包含我的“域”逻辑,不包含任何Android组件。
在您的情况下,因为您正在使用Room,是的,此模块将需要是com.android.library
模块。
我认为这没有办法。您可以将模块显然分为两部分:一个用于翻新(data-api
),一个用于Room
(data-local
)
答案 1 :(得分:1)
这里是link 很高兴在上面的链接中看到开放源代码。