2011-09-21 5 views
10

引数をAsyncTaskコンストラクタに渡す際のメリットとデメリットは何ですか?

私は AsyncTaskを使用していますが、 doInBackground(...)メソッドへの直接の呼び出しではなく、コンストラクターに引数を渡すことの意味を疑問に思っています。例えば:

呼び出し:

new SomeTask(bitmap, integer, "somestring").execute(); 

クラス:

public class SomeTask extends AsyncTask<Void, Void, String> { 
private String string; 
private Bitmap image; 
private int integer; 

public SomeTask (Bitmap bmp, int someint, String s){ 
    this.image = bmp; 
    this.string = s; 
    this.integer = someint; 
} 

protected String doInBackground(Void... params) {  
    // whatever 
    return "string"; 
} 

@Override 
protected void onPostExecute(String result){ 
    // whatever 
} 

}

デザイン、エレガンス、再利用、パフォーマンスに関して長所と短所は何ですか?

ありがとうございました。

+0

単純な経験則は - 「argsの数が増えるほどコードを再利用できるようになります」 – ingsaurabh

答えて

15

デザイン、ellegance、再利用、パフォーマンスに関してメリットとデメリットは何ですか?​​へ

使用パラメータあなたは、同じタイプ(タスクがダウンロードしたい文字列として、例えば、いくつかのURL)の任意の数を持つことになります。

異なるタイプのパラメータが複数ある場合は、コンストラクタパラメータを使用して、Javaのコンパイル時の型の安全性を利用できます。

渡すオブジェクトが1つだけ(または存在しない)場合、両方のアプローチはほぼ同等です。

+0

おかげさまで賢明なアドバイス – MobileCushion

関連する問題