代码之家  ›  专栏  ›  技术社区  ›  mallaudin

Android中的存储库模式单界面

  •  0
  • mallaudin  · 技术社区  · 5 年前

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

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

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

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

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

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

    1 回复  |  直到 5 年前
        1
  •  1
  •   CommonsWare    5 年前

    是否需要创建单独的接口或向现有的单个接口添加方法

    你想做什么就做什么。Android对存储库一无所知,也没有任何限制。

    在我的工作中,我不会首先创建一个通用接口(就像您显示的那个接口)。我想不出我在开发人员创建通用存储库接口的项目。我确信有些人确实创建了这样一个接口,但是操作系统并不要求这样一个接口。

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

    欢迎你这么做。