Die Sache mit dem langen Code habe ich auch auch eher als neutralen Punkt gesehen, hielt es der Vollständigkeit halber dennoch für erwähnenswert.
Meine Meinung zum langen Callstack ist ebenfalls, dass dies kein starkes (wenn überhaupt gültiges) Argument ist, warum das so ist, wurde bereits genannt.
Zu der Sache mit der Verarbeitung der Rückgabewerte kam mir als erstes so etwas in den Sinn:
Es sollen hier aus der Liste ein paar Elemente raus gesucht werden, die bestimmte Eigenschaften erfüllen und anschließend werden die weiterverwendet. Ob man dies mit anderen Mitteln einfacher lösen kann, lassen wir bitte einfach ausser Acht, da es hier um einen anderen Punkt geht
Um die Funktionalität aus dieser Methode auszulagern, sehe ich erst mal zwei Möglichkeiten:
Variante 2 müsste folgendermaßen weiterverarbeitet werden:
Wäre dies die optimale Lösung? Meine Praxiserfahrung ist zwar noch sehr begrenzt und daher weiß ich nicht, wie ich es beschreiben soll, aber auch diese Lösung "fühlt" sich nicht wirklich "richtig" an (bitte verzeiht die Ausdrucksweise, ich weiß ich nicht, wie ich es besser beschreiben soll). In einem Array werden für mich recht "ähnliche" Dinge gespeichert, aber hier werden gefilterte Elemente mit ganz speziellen Eigenschaften zusammen gefasst.
Meine Meinung zum langen Callstack ist ebenfalls, dass dies kein starkes (wenn überhaupt gültiges) Argument ist, warum das so ist, wurde bereits genannt.
Zu der Sache mit der Verarbeitung der Rückgabewerte kam mir als erstes so etwas in den Sinn:
Java:
// ...
Object a, b, c;
List<Object> objectList = new ArrayList<Object>();
fillList(objectList);
for(Object o : objectList) {
if(isValidA(o)) {
a = o;
}else if(isValidB(o)) {
b = o;
}else if(isValidC(o)) {
c = o;
}
}
// mit a, b, c weiterarbeiten
Um die Funktionalität aus dieser Methode auszulagern, sehe ich erst mal zwei Möglichkeiten:
- drei Methoden, die mir jeweils das Element für a, b oder c liefern
- Eine Methode, die mir ein Array von Elementen zurück gibt
Variante 2 müsste folgendermaßen weiterverarbeitet werden:
Java:
// ...
Object a, b, c;
List<Object> objectList = new ArrayList<Object>();
fillList(objectList);
final Object[] filteredElements = filterList(objectList);
a = filteredElements[0];
b = filteredElements[1];
c = filteredElements[2];
//mit a, b, c weiterarbeiten
Wäre dies die optimale Lösung? Meine Praxiserfahrung ist zwar noch sehr begrenzt und daher weiß ich nicht, wie ich es beschreiben soll, aber auch diese Lösung "fühlt" sich nicht wirklich "richtig" an (bitte verzeiht die Ausdrucksweise, ich weiß ich nicht, wie ich es besser beschreiben soll). In einem Array werden für mich recht "ähnliche" Dinge gespeichert, aber hier werden gefilterte Elemente mit ganz speziellen Eigenschaften zusammen gefasst.