21

私はRetrofitを使用しており、すべてのタスクで次のようなことをしなければなりません。

public class MyTask extends AsyncTask<String, String, String> {

    private void someMethod() {
        final RestAdapter restAdapter = new RestAdapter.Builder()
            .setServer("http://10.0.2.2:8080")
            .build();
        final MyTaskService apiManager = restAdapter.create(MyTaskService.class);
    }

    // ...

}

このコードを DRY にする良い方法は何ですか?

4

3 に答える 3

46

RestAdapterサービスの と生成されたインスタンス (この場合) はどちらMyTaskServiceも非常に高価なオブジェクトであり、シングルトンとして使用する必要があります。

これは、一度だけ呼び出して、対話する必要があるたびrestAdapter.createに同じインスタンスを再利用する必要があることを意味します。MyTaskService

私はこれを十分に強調することはできません。

どこでも使用するこれらのオブジェクトのインスタンスが 1 つだけになるようにするために、通常のシングルトン パターンを使用できます。依存性注入フレームワークもこれらのインスタンスを管理するために使用できるものですが、まだ使用していない場合は少しやり過ぎです。

于 2013-12-17T05:58:32.507 に答える