Android 中的存储库模式单一界面

Repository Pattern Single Interface in Android

研究了几篇关于该主题的博文后,我感到困惑,因为不同的开发人员有不同的实现,但他们都使用存储库的单一接口

假设,我们有以下存储库接口

interface Repository<T> {
    fun get(): List<T>
    fun save(items: List<T>)
}

对于使用 T = UsersRepository.get() 的此存储库的特定实现,从服务器下载一些数据并将其缓存。

对于另一种类型的对象,说 Bundles 我不仅需要这些方法,还需要一些额外的方法,例如正在为特定列查询本地数据库

在那种情况下,我无法理解,我是否需要创建一个单独的接口或向现有的单一接口添加方法,在这种情况下我应该如何处理在不需要这些方法的其他存储库中实现新方法?它必须对所有存储库具有相同的接口。我个人认为,为不同的存储库创建多个接口是可以的,只要我很好地抽象它们即可。

do I need to create a separate interface or add methods to existing single interface

你可以随心所欲。 Android 对存储库一无所知,也没有施加任何限制。

在我的工作中,我不会首先创建一个通用界面(如您展示的那个)。我也想不出我在哪个项目中开发人员创建了一个通用的存储库接口。我敢肯定有些人确实创建了这样的界面,但是 OS 没有要求。

Personally, I think, its ok to create multiple interfaces for different repositories as long as I abstract them nicely.

欢迎您这样做。