研究了几个有关该主题的博客文章后,我感到困惑,因为不同的开发人员有不同的实现方式,但是他们都使用了用于存储库的单个接口。
假设,我们为存储库提供了以下界面
interface Repository<T> {
fun get(): List<T>
fun save(items: List<T>)
}
对于使用T = Users
,Repository.get()
的此存储库的特定实现,请从服务器下载一些数据并将其缓存。
对于另一种对象,说Bundles
,我不仅需要这些方法,还需要其他一些方法,例如在本地数据库中查询特定列。
在那种情况下,我不明白,我需要创建一个单独的接口还是向现有的单个接口中添加方法,在这种情况下,我应该如何在其中实现新方法其他不需要这些方法的存储库?它必须对所有存储库具有相同的接口。我个人认为,只要很好地抽象它们,就可以为不同的存储库创建多个接口。
答案 0 :(得分:1)
我是否需要创建一个单独的接口或向现有的单个接口添加方法
您可以做任何您想做的事。 Android对存储库一无所知,也没有施加任何限制。
在我的工作中,我首先没有创建通用接口(如您所显示的那样)。我也无法想到我在开发人员创建通用存储库接口的地方所从事的项目。我确信有人确实创建了这样的界面,但是操作系统没有要求。
我个人认为,只要很好地抽象它们,就可以为不同的存储库创建多个接口。
欢迎您这样做。