zuerst erklären Sie Eltern-Klasse mit allen gängigen Verhalten
public abstract class MyAbstractTask extends AsyncTask<String, String, String> {
protected void someMethod() { //note that i change private to protected
final RestAdapter restAdapter = new RestAdapter.Builder().setServer("http://10.0.2.2:8080").build();
final MyTaskService apiManager = restAdapter.create(MyTaskService.class);
}
}
dann, können Sie es mit jeder Aufgabe erweitern
public class MyTask extends MyAbstractTask {
//your someMethod() is available from everywhere in your class
}
public class MyOtherTask extends MyAbstractTask {
//your someMethod() is available from everywhere in your class
}
aber ich weiß nicht, wo Sie restAdapter und apiManager verwenden , und wenn die tatsächlich einmal pro Aufgabe erstellt werden müssen, da Sie wahrscheinlich außerhalb dieser Aufgaben erstellen können.
Wenn Sie sie außerhalb erstellen, und dann müssen Sie etwas in Ihrer Aufgabe verwenden, ist es auch gut, das Muster Dependency_injection zu berücksichtigen.
Außerdem sollten Sie Hardcoding-Werte in Ihren Klassen, wie http://10.0.2.2:8080
sollten Sie verwenden mindestens ein final static final String server= "http://10.0.2.2:8080"
und verwenden Sie dann das, oder besser, verwenden Sie einen Setter oder den Konstruktor in der innersten Klasse vermeiden und setzen Sie die Werte von der Aktivität oder dem Hauptcontroller.
Wo hast du 'RestAdapter':
Sie den Dienst in diesem Beispiel, wie so verwenden kann? Könnte ich es wissen? – Geros
Was meinst du mit DRY? – Husyn
Sie könnten einfach einige Vererbungskonzepte verwenden –