Da ist in meine Augen gar nicht das Problem, sondern die Unmöglichkeit. die Datenbeschaffung einzeln durchzuführen. Beispiel: Wir haben eine kundeneigene Tabelle mit z. B. zehn Einträgen. Nach OO-Kontext erzeugt man so viele Objekte wie es unterschiedliche Sätze in der Tabelle, indem man einen Datensatz liest, dazu das Objekt erzeugt und Tabellenkey und Objekt in einer Instanzentabelle sichert. Aber das "Ich lese einen (wirklich gezielt einen, denn nur den brauche ich für mein Objekt) Satz aus der Tabelle, den ich bisher noch nicht gelesen habe" wüsste ich nicht abzubilden.GastX hat geschrieben:Hallo Ralf,
in dem von Dir genannten Beispiel finde ich es legitim, die Datenbeschaffung nicht in den einzelnen Objekten zu machen, da es ja um Massen geht.
Ja, da hast du recht. Ist vielleicht ein blödes Beispiel gewesen geb ich zu. Ich sehe die Listen hier eher im Sinne einer allgemeinen Objekt Sammlung (vgl. Vector in Java). Wo die Daten herkommen ist dann zweitrangig und könnte sich dann im ungüstigsten Fall ohne klare Applikationstrennung überschneiden. Die Instanzierung mehrerer Objekte gleichzeitig ist dann eine Zusatzfunktion die in einer Ableitung dazu kommt.GastX hat geschrieben:Je nach Verwendung. Wenn Du die Daten durch zwei Applikationen modifizieren lässt und diese sich nicht beeinflussen sollen, dann stellt sich die Frage nach dem Zeitpunkt der Persistierung und ob die eine die Änderungen durch die andere irgendwann sehen soll. (Klar, Sperrobjekte spielen da noch eine Rolle.)
Das habe ich vor, daher meine Frage: Wäre das Einlesen der Gesamt-Daten nicht ein Fall für einen Klassenkonstruktor? Allerdings: Wenn ich nach jeder DB-Operation die Daten frisch lesen will, brauche ich wohl doch eine konventionelle statische Methode....black_adept hat geschrieben:Hallo Ralf,
mach doch eine Mischung aus A-D-Ts und Franks Vorschlägen.
Deine Klasse bekommt statische Methoden, welche die Massenerzeugung von noch fehlenden Objekten machen und welche sich falls nötig um die Verwaltung der Objekte kümmern, sowie deine schon vorhandenen Instanzmethoden welche sich um die individuellen Objekte kümmern..
Zu den Persistenzdiensten: Das ist Neuland für mich, daher wäre es vielleicht gar nicht so schlecht, sowas Einfaches für die erste Umsetzung zu wählenGastX hat geschrieben:@Ralf: mir kommen Persistenzdienste bei Daten aus genau einer Tabelle etwas oversized vor.
@black_adept / A-D-T: wie seht Ihr das?
Apropos einzelne Sätze: hast Du eine Klasse, die eine Liste der schon eingelesenen Daten vorhält (ist glaube ich sowohl in der Beschreibung von A-D-T als auch mir so möglich) kannst Du doch jeweils die GET_SINGLE-Methode erst dort nachschauen lassen und dann bei Bedarf aus der DB den einzelnen Satz nachlesen, Objekt erzeugen und in Verwaltungsliste eintragen.
Oder hatte ich den Punkt von Ralf missverstanden?
Welche internen Funktionen meinst du? Persistenzklassen eignen sich doch GERADE, um Tabellenbündel gescheit zu verwalten....a-dead-trousers hat geschrieben:Nochwas zu den persistenten Klassen: Die hab ich bislang noch nicht eingesetzt gerade weil sie NUR EINE TABELLE gleichzeitig verwalten können. Ich verwende aber gerne auch Texttabellen zu meine Datentabellen und würde diese dann auch in einem Rutsch bearbeiten wollen. Die ganzen internen Funktionen, die normalerweise automatisch generiert werden können, funktionieren damit aber nicht. Ich müsste also erst alles wieder selber schreiben.
lg ADT
Tabellenbündel ja, aber je Klasse wird vom Standard nur ein Schlüssel unterstützt. Möchte man mehrere Tabellen deren Key nicht übereinstimmt (1:N) auf einmal bearbeiten braucht man mehrere Klassen. Was bei Texttabellen (SPRAS) ja der Fall ist.ralf.wenzel hat geschrieben:Welche internen Funktionen meinst du? Persistenzklassen eignen sich doch GERADE, um Tabellenbündel gescheit zu verwalten....