OO: Wo persistente Instanz löschen?

Jakob

Jakob

Aktives Mitglied
Thread Starter
Dabei seit
05.01.2004
Beiträge
1.070
Reaktionspunkte
21
Hallo,

in einer OO-Sprache erstelle ich eine Klasse und instanziiere diese. Dabei wird diese persistent, also bspw. in einer DB, gesichert.

Wo lege ich jetzt die Methode „Lösche Instanz Nr. …“ bzw. „Lösche diese Instanz“ ab?
Ich sehe drei Möglichkeiten:
- in der Klasse selbst, public static void int:void
- in der Klasse selbst, public void void:void
- in der Superklasse, public void int:void

Welche Variante würdet ihr wählen?
 
Um welche OO-Sprache handelt es sich den überhaupt? Java,C++,Obj.C,OCaml,etc. etc., generell würde ich aber sagen in der Klasse selbst, denn wenn sich das Object erzeugen kann (Konstruktor) muss es sich auch wieder zerstören können (Destruktor).
MFG

EDIT: Sry hab nicht richtig geschaut, sollte PHP sein gell?
 
Das hängt sicherlich wie so oft vom Anwendungsfall ab ...
In der Klasse selbst - also public void void:void finde ich immer am praktischsten. Ich habe ein Objekt ... lösche es.
Wenn ich nur die ID (int) habe, dann ist public static void int:void offensichtlich die eleganteste Methode.
Die IDs könnten z.B. aus einer anderen Quelle stammen - einem Index, durch den ich mit einem Iterator durchlaufe und nach bestimmten Metadatenkriterien die zu löschenden wähle.

Wenn das Löschen aus der DB Nachbereitung erfordert - z.B. Löschen des Objektes - dann ist die statische Variante das Mittel der Wahl.

Vielleicht nützts ;)
Winterlicher Gruß aus HH,
jpv
 
Ist in diesem Fall PHP, meinte die Frage generell, aber vielleicht ist's einfacher das erstmal auf PHP zu beschränken:

Eine Klasse kann ja schon längst wieder zerstört sein, obwohl sie noch in der DB liegt.
In PHP wird sie ja nach jedem fertigen Skriptdurchlauf zerstört. Da soll er natürlich nicht die Klasse aus der DB löschen.

Ich tendiere zu meiner zweiten Möglichkeit. Der Nachteil der ersten ist, dass man erst die Klasse instanziieren muss, um sie zu löschen. Der Nachteil der dritten, dass die Superklasse unnötig aufgebläht wird.

Edit: Danke jpv, sehe ich mittlerweile auch so. Übrigens hier unten scheint die Sonne bei sommerlichen 7°C :)
 
Zurück
Oben Unten