OO: Wo persistente Instanz löschen?

  1. Jakob

    Jakob Thread StarterMacUser Mitglied

    Mitglied seit:
    05.01.2004
    Beiträge:
    1.067
    Zustimmungen:
    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?
     
    Jakob, 09.02.2007
  2. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    wegus, 09.02.2007
  3. Ischi

    IschiMacUser Mitglied

    Mitglied seit:
    01.05.2005
    Beiträge:
    1.104
    Zustimmungen:
    28
    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?
     
    Ischi, 09.02.2007
  4. jpv

    jpvMacUser Mitglied

    Mitglied seit:
    09.06.2006
    Beiträge:
    159
    Zustimmungen:
    10
    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
     
  5. Jakob

    Jakob Thread StarterMacUser Mitglied

    Mitglied seit:
    05.01.2004
    Beiträge:
    1.067
    Zustimmungen:
    21
    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 :)
     
    Jakob, 09.02.2007
Die Seite wird geladen...
Ähnliche Themen - persistente Instanz löschen
  1. leo-magic
    Antworten:
    18
    Aufrufe:
    1.456
    Saugkraft
    10.06.2011
  2. Mac_Neuling
    Antworten:
    1
    Aufrufe:
    844
  3. Seiler
    Antworten:
    2
    Aufrufe:
    1.342
  4. AppleSiebi
    Antworten:
    10
    Aufrufe:
    532
  5. KonBon
    Antworten:
    8
    Aufrufe:
    915