Ich erweitere SimpleExpandableListAdapter
in Android. Ich denke nicht, dass der Adapter von Android sehr gut implementiert ist, da seine Konstruktoren eine große Anzahl ziemlich komplizierter Argumente haben und es keine Setter oder Builder gibt. In meiner Klasse sind die meisten dieser Argumente nicht von der aufrufenden Klasse abhängig, daher möchte ich sie intern erstellen. Die Argumente sind jedoch verschachtelte List
s und Arrays von Ints und Strings, die programmgesteuert erstellt werden müssen.
Da vor dem super
Konstruktor nichts aufgerufen werden kann und Instanzmethoden nicht aufgerufen werden können, bevor der super
Aufruf zurückgegeben wird, habe ich derzeit mehrere statische Methoden, die ich vom Aufruf aus super
aufrufe:
super(getContext(), initGroupData(), groupLayout, initGroupFrom(), initGroupTo(),
initChildData(), childLayout, initChildFrom(), initChildTo());
Ich sehe drei Möglichkeiten, dies zu handhaben: Aufrufen statischer Methoden wie jetzt, mit einem großen statischen Initialisierer, der wahrscheinlich dieselben Methoden aufruft, um statische Variablen zu initialisieren, die dann im super
Aufruf verwendet werden, oder Einkapseln all dieser Methoden in einen Builder.
Ich denke, im Moment neige ich mich zum Baumeister, aber ich frage mich, ob es einen besseren Weg gibt, damit umzugehen.