Objektorientierung - Praxisfrage (WebApp)!

Hallo,

ich brauche für eine Web-Applikation (Servlet und JSP Seite) eine sinnvolle Datenstruktur. Das Servlet ist so ein Art Controller/Dispatcher welches auf Helper(Classen) zurückgreift die die Backendsystema abfragen und dann das Ergebnis in JSPs darstellt.

Ich weiss nun nicht, wie ich die DAten(struktur) sinnvoll gestalte. Die Helper Classen frage die BAckendsysteme ab: DAbei werden einzelne Buchungstransaktionen ausgelesen die ich auch einzeln als ein Buchungs(transaktion)-Objekt darstellen möchte. (Sprich eine Buchung hat entsprechende Attribute. Im Gegensatz dazu würde es ja auch die Möglichkeit geben diese Daten=Attribute in einen Vektor zu kopieren, was aber wohl keine "gute Datenstruktur ist).

Der Report der erstellt werden soll, ließt jedoch diese Buchungsdaten mit mehreren Abfrgen und entsprechenden Abfragekriterien aus der Datenbank aus. Ziel ist es die Buchungstransaktionen schön sauber z.B. nach Kunden zu listen und auch ein paar Summen über die ganzen Datensätze zu bilden.

Wie würdert ihr sowas programmieren? Einen Vektor bzw. wohl besser eine Hashmap wo ich über den „Key“ (=Kundenname) über auf die einzelnen Buchungsobjekte zugreifen kann.

Oder das ganze auch hier 100prozentig OBjektorientiert machen.
D.h. ich erstelle ein 1.)ReportObjekt, das wiederum ein 1.)CustomerObjekt enthält, welches wiederum ein 3.)Vektor mit all den Buchungstransaktionobjekten enthält.
(das ganze ist hier vereinfacht, es sind da noch ein paar mehr OBjekte bzw. Ebenen mit beteiligt.)
Oder ist es bei Web-Applikationen sinnvoll das ganze relativ „flach“ ohne große ObjektKapselung in Vektoren zu kopieren und diese dann auszulesen.

Ich hoffe ich konnte einigermassen erklären was da meine Frage ist:wink:
(Was sind sinnvolle objektorientierte Datenstrukturen, wann kopiert man nur in Vektoren/Hashmaps und greift über irgendwelche Keys zu oder wann generierten man eine OBjekthierarchie die wohl doch die Sache zwar "logischer und objektorientierter macht, aber auch sehr viel Overhead mitbringt?)
Bin für Tips, Literatur und Beispiele auch gerne Links sehr dankbar.

Danke
Julian.

Hallo Julian -

Der Detailgrad der Objektorientierung kommt eigentlich ganz auf dich an. Ich kann dir jedoch sagen, dass je weiter du abstrahierst und „sauber“ programmierst, desto weniger Aufwand hast du, wenn du die Applikation zu einem späteren Zeitpunkt erweitern/umprogrammieren mußt.

Und da spreche ich aus Erfahrung.

Zusätzlich hat die strenge Gliederung in einzelne Objekte einen sehr entscheidenden Vorteil: Die Austauschbarkeit. Du kannst jederzeit ein Objekt durch ein neues mit erweitertem Funktionsumfang bzw. z.B. besserer Performance austauschen.

Gliederst du richtig, vermeidest du auch effektiv reduntanten Code.

Aber wie immer: Du mußt ja auch eine Zeit/Geldachse einhalten, und die bestimmt auch zu einem großen Teil die Komplexität der Softwarearchitektur :wink:

mfG,

J.P.Jarolim