带有接口的Android存储库实现

问题描述 投票:0回答:1

通常,我在存储库中使用接口:

interface UserRepository {
    fun add()
    fun get(userId): User
    .....
}

我有三种类型的存储库(InMemory,数据库和网络):

它们都实现UserRepository:UserInMemoryRepository-UserDatabaseRepository-UserNetworkRepository

但是我的网络没有有任何添加用户 API

这里的最佳做法是什么?

  1. 删除我的UserRepository界面
  2. 留下一个空的添加用户方法
  3. ......(任何更好的方法)
android repository-pattern android-mvvm
1个回答
0
投票

add()留空不符合SOLID原则。如果一个以上的类应重写某个方法,则也不应删除接口。我要做的是创建界面:

interface Repository {
    fun get(userId): User
}
...
interface UserRepository : Repository {
     fun add()
}

然后您的“网络”可以实现Repository,其余的类可以实现UserRepository。当然,接口的命名取决于您,但是根据SOLID中的“ I”,最好有更多专用接口而不是一个多功能接口

© www.soinside.com 2019 - 2024. All rights reserved.