VolleyとRetrofitの両方で最小限の変更で使用できるネットワークコール用の共通クラスを使用するにはどうすれば助けてくれますか?将来的には、改装やバレーへの変更が必要な場合は、実現可能なはずです。AndroidのVolleyとRetrofitで使用する一般的なクラス
ありがとうございます。
VolleyとRetrofitの両方で最小限の変更で使用できるネットワークコール用の共通クラスを使用するにはどうすれば助けてくれますか?将来的には、改装やバレーへの変更が必要な場合は、実現可能なはずです。AndroidのVolleyとRetrofitで使用する一般的なクラス
ありがとうございます。
あなたはラッパークラスについて話しています。
基本的に、ネットワーク通話の契約を作成する必要があります。どの種類のパラメータを送信するのか、どのくらいのデータを取得するのか、どの種類のコールバックシステムを使用するのかを定義する必要があります。このレベルでは、物を切り替えるためにVolley/Retrofitクラスを使用しないでください。この種のアプローチは、例を見てみようなど、あなたがいずれかの安全性(実際の懸念)のために、任意のフレームワークからアプリケーションを分離する必要があるかもしれ役に立つ毎回、テスト、次のとおりです。
public class Request<X>{
protected HashMap<String, String> headers;
protected HashMap<String, String> queryParams;
protected X body;
private String url;
//manage fields
}
public class Response<X> extends Request<X>{
private int statusCode;
//manage fields
}
public class restApi{
public interface OnRestOperation<X>{
void onSuccess(Response<X> operation);
void onServerFailure(Response<X> operation);
void onClientFailure(Response<X> operation)
}
public interface NetworkLayer{
void makeCall(Request<X> request, Map<String, OnRestOperation> listeners);
void removeListener(String listenerName);
}
private HashMap<String, OnRestOperation> listeners;
private NetworkLayer networkLayer;
public restApi(NetworkLayer networkLayer){
this.networkLayer = networkLayer;
}
public restApi setNetworkLayer(NetworkLayer networkLayer){
this.networkLayer = networkLayer;
return this;
}
public void call(Request<X> request, OnRestOperation<X> aListener, String listenerName){
listeners.put(getListenerName(request), aListener);
networkLayer.makeCall(request, listeners);
}
public deleteListener(String listenerName){
listeners.remove(listenerName);
networkLayer.removeListener(listenerName);
}
}
NetworkLayerは/どこ改造/ボレーであります何を実装すべきか。明らかに、リスナーの代わりにRx/eventbusに行き、スレッドやメモを追加することができます。
同じものを探していただきありがとうございました –
APIアクセスインターフェイスを宣言して2つの具体的な方法で実装するだけではどうですか? –
あなたは私にコードスニペット –
の例を教えてもらえますかこれは些細な設計上の問題です。 –