Dies mag eine seltsame Frage sein: Ich ringe mit der Entscheidung, ob es eine gute Praxis und "effizient" ist, mit "Typed Objects" auf einer sehr granularen Ebene zu arbeiten.
public Object[] doSomething() {
Object[] resultList = new Object[] {new Foo(), new Bar()};
return resultList;
}
gegen
public Result doSomething() {
Result result = new Result();
result.foo = new Foo();
result.bar = new Bar();
return result;
}
public class Result{
Foo foo;
Bar bar;
}
Meine Frage lautet konkret wie folgt:
-
In Bezug auf die CPU-Zyklen (als relative Zahl), wie viel verbraucht der zweite Ansatz mehr Ressourcen. (etwa 100% mehr)
-
Dieselbe Frage in Bezug auf den Speicherverbrauch
NB (diese beiden Fragen sind zum besseren Verständnis, es geht nicht um eine vorzeitige Optimierung)
- Was die "gute Entwurfspraxis" betrifft. Glauben Sie, dass Version 1 ein absolutes No-Go ist, oder denken Sie eher, dass es eigentlich egal ist... Oder würden Sie vorschlagen, niemals "Objekt-Arrays" (((in einer objektorientierten Programmiersprache))) zurückzugeben...
Das ist etwas, was ich mich immer frage, ob ich dedizierte Objekte für alles erstellen sollte (für die Übergabe von Werten) oder ob ich lieber generische Objekte (und allgemeine Methodenparameter) verwenden sollte...
Die Frage gilt auch für
public doSomething(Query query )
gegen
public doSomething(Foo foo, Bar bar, Aaaa, a, Bbbbb)
danke
Markus