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



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

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

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

对于这个存储库的特定实现,T = UsersRepository.get(),从服务器下载一些数据并缓存它。

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

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

我需要创建一个单独的接口还是向现有的单个接口添加方法

你可以做任何你喜欢的事情。Android对存储库一无所知,也没有施加任何限制。

在我的工作中,我首先不会创建一个通用接口(就像你展示的那个)。我也想不出我参与的项目,开发人员创建了一个通用存储库界面。我相信有些人确实创建了这样的界面,但操作系统没有要求。

就个人而言,我认为,只要我很好地抽象它们,就可以为不同的存储库创建多个接口。

欢迎您这样做。

最新更新