2011-01-24 12 views
2

私は、Webサービスを大量に使用するAndroidアプリケーションを作成しています。複数のパラメータタイプを受け入れるジェネリック関数を作成する

Httpオブジェクト(HttpGet、HttpPost、HttpPut、HttpDelete)にヘッダーを追加する方法を書いてみたいと思います。

すべてのヘッダーが常に同じであるため、私は1つの方法で4つの方法を書いてみたいと思います。

私は4つすべてがHttpRequestBaseを拡張すると信じています。最高のアイデアは、パラメータとしてHttpRequestBaseを取り、さまざまなHttpGet、HttpPost、HttpPut、HttpDeleteオブジェクトをHttpRequestBaseにキャストしてメソッドを呼び出すメソッドを書くことでしょうか?

その他のおすすめ?

+0

単純な継承またはインターフェイスでさえおそらく実行されます。 – biziclop

答えて

3

4つのすべては、あなたが必要とするべきではない、同じ基本クラスを拡張する場合どんなキャスティングでも行うことができます。多形性はあなたが望むことをするはずです。つまり、単に:

void myFunction(HttpRequestBase request) { 
    ... 
} 

... 
HttpGet getRequest = new HttpGet(); 
myFunction(getRequest); // No need to cast 

私はこのライブラリについて何も知らないですが、あなたがこれをやってしまうのを防ぐいくつかのグレムリンがあるかもしれません(しかしその場合、それは悪いライブラリデザインです)。

3

だけで、あなたは単に多型の魔法を介してこれを行うことができますHttpGetHttpPostHttpPutHttpDeleteHttpRequestBaseから派生を持っている:

void MyFunciton(HttpRequestBase request); 
関連する問題