在干净的体系结构中,存储库必须是Android还是Kotlin模块?
在清洁体系结构中,存储库包含远程(改装)和本地(房间)数据源。我看到遥控器是纯Kotlin模块。然而,由于Room需要访问Android上下文,因此本地是Android模块在干净的体系结构中,存储库必须是Android还是Kotlin模块?,android,repository,clean-architecture,Android,Repository,Clean Architecture,在清洁体系结构中,存储库包含远程(改装)和本地(房间)数据源。我看到遥控器是纯Kotlin模块。然而,由于Room需要访问Android上下文,因此本地是Android模块 那么,由于本地模块,存储库必须是Android模块吗?如果是的话,您知道有什么抽象可以避免本地模块中的上下文并使该模块成为纯Kotlin吗?编程语言之间没有区别。决定因素是它是否依赖安卓系统的任何组件(如上下文)来运行 我有一个用kotlin编写的模块,它是一个java库。这个库包含我的“域”逻辑,不包含任何Android组
那么,由于本地模块,存储库必须是Android模块吗?如果是的话,您知道有什么抽象可以避免本地模块中的上下文并使该模块成为纯Kotlin吗?编程语言之间没有区别。决定因素是它是否依赖安卓系统的任何组件(如上下文)来运行 我有一个用kotlin编写的模块,它是一个
java库
。这个库包含我的“域”逻辑,不包含任何Android组件
在您的情况下,因为您使用的是Room,所以此模块需要是com.android.library
模块
我认为没有办法解决这个问题。显然,您可以将模块分为两部分:一部分用于改装(dataapi
),另一部分用于Room
(datalocal
)
很高兴在上面的链接上看到开放源码。谢谢您的回答。我知道,因为子模块是Android(
local
),所以这个容器模块(repository
)也必须是Android模块。似乎没有办法抽象它。我相信你是对的。您可以在com.android.library
模块中使用java库
,但不能以其他方式使用链接到解决方案是受欢迎的,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户就会知道它是什么以及它为什么存在,然后引用你链接到的页面最相关的部分,以防目标页面不可用。