我想使用存储库模式从我的viewModel class
存储库getPosts
调用。
来自getPostsArrayfromLocalRoomDB
getPostsArrayfromLocalRoomDB
[来自Retrofit的调用]和viewModel
[来自Room db的调用]
我实现了一个存储库接口和一个RepositoryImpl class
在存储库中进行 Remote Retrofit 调用:
@Override
public Flowable<List<PostFromJsonModel>> getPostsArrayFromRetrofitRemote(String tags) {
//notice <PostFromJsonModel>
return postsFromRemoteDataSource.getAllRemote(tags).toFlowable(BackpressureStrategy.BUFFER);
}
以及调用Room DB的 Local RoomDB :
@Override
public Flowable<List<PostFromRoomDB>> getPostsArrayfromLocalRoomDB(String tags) {
//notice <PostFromRoomDB>
return postsfromLocalDataSource.getAllLocalDb();
}
现在我想要一个不可知的调用getPosts
,这样我就可以在这个方法中插入我的业务逻辑来调用数据库和REST API
,
问题是我不知道应该归还什么:
what_I_should_return?
public getPosts(String tags){
//I know the business logic here, no need to suggest this
}
我尝试Flowable<List<?>, Flowable<List<T>
等等,但我不知道如何将两种通用类型PostFromJsonModel
和PostFromRoomDB
结合起来统一调用。
答案 0 :(得分:0)
知道了,我只需要返回一个没有参数的简单Flowable
。有趣的是,因为我在视图中订阅了在viewModel中声明Flowable所需的内容。