2017-06-07 8 views
0

現在、View ModelsまたはrxJavaを使用していないAndroidプロジェクトがあります。 Parse SDKを解析サーバとともに使用する、かなり簡単なアプリケーションです。それはまだプロジェクトの初期段階です。私はVMとrxJavaの使用を開始することに決めました。Android rxJava2のプロジェクト構造、ファイルの名前付けなど

私はlogin(Authorization auth, ServiceCallback<User> callback)方法でAuthenticationService.javaと呼ばれるインタフェースを持っている:

私の質問はのは、例えばログインを使用してみましょうなどと命名、構造についてほとんどです。

私のParseAuthenticationService.javaは、そのインターフェイスを実装し、すべての解析を行います。

アプリ全体がこのように設定されていますので、私のUser.javaは、MyParseUser.javaで使用されるインターフェイスであり、すべての解析が行われます。

ログインボタンがあり、LoginActivityはユーザー名/パスワードを取得し、Authorizationオブジェクトを作成してログイン機能を呼び出します。

login関数をオブザーバブルにラップして、アクティビティでサブスクライブするのと同じように、rxJavaへの変更は簡単ですか?

どのように見えますか?ログイン機能は次のようになります。

@Override 
public void login(Authorization authorization, final ServiceCallback<User> callback) 
{ 
    cachedUser = null; 
    ParseUser.logInInBackground(authorization.getUsername(), authorization.getPassword(), new LogInCallback() 
    { 
     @Override 
     public void done(ParseUser user, ParseException e) 
     { 
      if (callback != null) 
      { 
       callback.onServiceRequestComplete(Response.<User>from((MyParseUser) user, e)); 
      } 
     } 
    }); 
} 

私は、同じ解析クラス-使用して汎用インタフェース構造を保つことができますか?ファイルを再構成/名前変更する必要がありますか?

ありがとうございました。これはすべて圧倒的です。

答えて

0

インプリメンテーションから実装とは別のコントラクト宣言を使用します。 Observableパターンは非同期レスポンスを表現する良い方法であるため、インタフェースのObservableでコールバックを置き換えるのが適しているようです。

あなたはコールバック関数のObservableバージョンを一緒に置くことができます。たとえば、login(...)Observable.create()またはSingle.create()とラップするObservable<User> loginObservable(Authorization auth)(またはそれ以上の場合はSingle<User> loginSingle(Authorization auth))を記述します。後でリファクタリングする必要があるかもしれませんが、Rxをよく知っていればそれを行います。 Rxに切り替えるには2ステップのプロセスが必要でした。私は自分のアーキテクチャを進化させましたが、後にはかなり進化しました。

このようにObservableを作成することは少し進歩したRxトピックなので、Parseのための既存のRxラッパーを探すことをお勧めします。

関連する問題