Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在干净的体系结构中,存储库必须是Android还是Kotlin模块?_Android_Repository_Clean Architecture - Fatal编程技术网

在干净的体系结构中,存储库必须是Android还是Kotlin模块?

在干净的体系结构中,存储库必须是Android还是Kotlin模块?,android,repository,clean-architecture,Android,Repository,Clean Architecture,在清洁体系结构中,存储库包含远程(改装)和本地(房间)数据源。我看到遥控器是纯Kotlin模块。然而,由于Room需要访问Android上下文,因此本地是Android模块 那么,由于本地模块,存储库必须是Android模块吗?如果是的话,您知道有什么抽象可以避免本地模块中的上下文并使该模块成为纯Kotlin吗?编程语言之间没有区别。决定因素是它是否依赖安卓系统的任何组件(如上下文)来运行 我有一个用kotlin编写的模块,它是一个java库。这个库包含我的“域”逻辑,不包含任何Android组

在清洁体系结构中,存储库包含远程(改装)和本地(房间)数据源。我看到遥控器是纯Kotlin模块。然而,由于Room需要访问Android上下文,因此本地是Android模块


那么,由于本地模块,存储库必须是Android模块吗?如果是的话,您知道有什么抽象可以避免本地模块中的上下文并使该模块成为纯Kotlin吗?

编程语言之间没有区别。决定因素是它是否依赖安卓系统的任何组件(如上下文)来运行

我有一个用kotlin编写的模块,它是一个
java库
。这个库包含我的“域”逻辑,不包含任何Android组件

在您的情况下,因为您使用的是Room,所以此模块需要是
com.android.library
模块

我认为没有办法解决这个问题。显然,您可以将模块分为两部分:一部分用于改装(
dataapi
),另一部分用于
Room
datalocal


很高兴在上面的链接上看到开放源码。

谢谢您的回答。我知道,因为子模块是Android(
local
),所以这个容器模块(
repository
)也必须是Android模块。似乎没有办法抽象它。我相信你是对的。您可以在
com.android.library
模块中使用
java库
,但不能以其他方式使用链接到解决方案是受欢迎的,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户就会知道它是什么以及它为什么存在,然后引用你链接到的页面最相关的部分,以防目标页面不可用。