带接口的Android存储库实现
通常,我会为我的存储库使用一个界面:带接口的Android存储库实现,android,repository-pattern,android-mvvm,Android,Repository Pattern,Android Mvvm,通常,我会为我的存储库使用一个界面: interface UserRepository { fun add() fun get(userId): User ..... } 我有三种类型的存储库(内存、数据库和网络): 它们都实现了UserRepository: UserInMemoryRepository-UserDatabaseRepository-UserNetworkRepository 但是我的网络没有任何添加用户的API 这里的最佳实践是什么 删除我的User
interface UserRepository {
fun add()
fun get(userId): User
.....
}
我有三种类型的存储库(内存、数据库和网络):
它们都实现了UserRepository:
UserInMemoryRepository
-UserDatabaseRepository
-UserNetworkRepository
但是我的网络没有任何添加用户的API
这里的最佳实践是什么
add()
留空与可靠的原则并不一致。
若多个类应该重写某个方法,那个么您也不应该删除接口。
我要做的是创建接口:
interface Repository {
fun get(userId): User
}
...
interface UserRepository : Repository {
fun add()
}
然后您的“网络”可以实现存储库
,其余的类实现用户存储库
。
当然,接口的命名取决于您,但根据SOLID中的“I”,最好有更多专用接口,而不是一个多功能接口您应该只有一个RepositoryImpl,当从内存或数据库或数据库获取数据时,它内部有逻辑network@CôngHả我想这不是谷歌示例实现的方式,请看这里。在UserRepository中,它管理缓存的内存和远程网络。