我正在開發一個使用Clean Architecture的Android應用程序,並將其遷移到RxJava 2.x.我必須做出一些網絡請求對SOAP服務,所以我定義域模塊中的API接口:RxJava 2.x:我應該使用Flowable還是Single/Completable?
public interface SiginterApi {
Observable<User> login(String user, String password);
...
Observable<List<Campaign>> getCampaigns(List<Long> campaignIds);
}
我讀過一個網絡請求應以「Flowable
」提出,因爲背壓因爲它是一個'冷觀察'。另一方面,我知道請求的結果將是成功的(帶有響應)或錯誤,所以我不知道我是否應該使用Flowable
或Single
甚至Observable
。
另外,我有一個數據庫訪問是這樣的:
public interface UserRepository extends Repository {
Observable<Void> saveUser(String username, String hashedPassword, boolean logged, User user);
...
Observable<User> findUser(String username, String hashedPassword);
}
我不知道我是否應該在findUser
方法saveUser
方法和Single
/Flowable
/Observable
使用Completable
/Flowable
/Observable
。
感謝您的回覆。我同意'Single'對於網絡請求來說是更好的選擇,因爲有單一的響應,但是你可以在這個[question](http://stackoverflow.com/a/40326875/6389621)和其他許多博客中閱讀關於RxJava 2.x,網絡和數據庫訪問器應該使用'Flowable'。 –
我相信作者指的是網絡和數據庫連接,其行爲類似於一系列事件。如果我理解正確,那不同於HTTP請求/響應對或單個數據庫查詢。 – npace
所以你認爲在'Observable'('Single' /'Completable')和'Flowable'之間做出決定的關鍵是你是否真的需要背壓控制。它不介意源類型(冷源,網絡/數據庫訪問...) –