通常,我在存储库中使用接口:
interface UserRepository {
fun add()
fun get(userId): User
.....
}
我有三种类型的存储库(InMemory,数据库和网络):
它们都实现UserRepository:UserInMemoryRepository
-UserDatabaseRepository
-UserNetworkRepository
但是我的网络没有有任何添加用户 API
这里的最佳做法是什么?
add()
留空不符合SOLID原则。如果一个以上的类应重写某个方法,则也不应删除接口。我要做的是创建界面:
interface Repository {
fun get(userId): User
}
...
interface UserRepository : Repository {
fun add()
}
然后您的“网络”可以实现Repository
,其余的类可以实现UserRepository
。当然,接口的命名取决于您,但是根据SOLID中的“ I”,最好有更多专用接口而不是一个多功能接口