Laden...

Objekt duplizieren

Erstellt von _daniel_ vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.356 Views
_
_daniel_ Themenstarter:in
227 Beiträge seit 2006
vor 17 Jahren
Objekt duplizieren

Hallo,
ich hab eine Objekt a, welches Daten enthält. Nun will ich davon eine kopie Objekt aOriginal haben um prüfen zu können, ,ob änderungen vorliegen. Textboxen auf einer Form sind dabei an a gebunden.
Wenn ich nun mache am anfang nach dem füllen von a mit den Daten machen aOriginal=a wird (logischerweise?!) alles was ich in änder auch in aOriginal geändert womit dann die Prüfung auf veränderung hinfällig wird da ja beides das gleiche ist.

Wie kann ich das anderst bewerkstelligen?
Das Objekct aOriginal mit den selben Daten zu füllen hätte 2DB abfragen zur Folge was nicht unbedingt sein muss.

Ist das überhaupt möglich was ich vorhabe oder habe ich einen prinzipiellen denkfehler?

Allgemein habe ich eben einige Textboxen mit einem BindingSource an ein Objekjt gebunden und möchte nun eben prüfen ob veränderungen gemacht wurden. Dazu bietet das Objekt a eine .Equals(object obj) methode an welche auch funktioniert.

Hoffe ich konnte mich verständlich ausdrücken.
Bin für jeglihe Tipps dankbar

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo daniel,

man sollte das Objekt nicht duplizieren, wenn man sich nur seinen Zustand merken will! Es widerspricht (etwas vereinfacht gesagt) der Objektorientierung, wenn man Objekte kopiert.

Verwende das Memento-Design-Pattern.

Siehe auch Kopie ohne IClonable

herbivore

_
_daniel_ Themenstarter:in
227 Beiträge seit 2006
vor 17 Jahren

okay, aber wie kann ich in meinem Fall dann prüfen ob Änderungen gemacht wurde?

edit: Habe den Link nach dem Posten durchgelesen. Sehr interesant nur mir dadurch die Frage, wie ich Änderungen identifizieren kann noch nicht ganz klar

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo daniel,

du kannst den Memento-Pattern ja so erweitern, dass der 'Urheber' nicht nur 'ErzeugeMemento' 'SetzeMemento' sondern auch ein 'VergleicheMemento' zur Verfügung stellt, das den aktuellen Zustand des Objekt mit dem Zustand des Menento vergleicht.

Und wenn du es so wie in Kopie ohne IClonable beschrieben machen willst, kannst du auch da den Code zum Speichern und Laden des Zustands um eine Vergleichsmöglichkeit erweitern.

herbivore

_
_daniel_ Themenstarter:in
227 Beiträge seit 2006
vor 17 Jahren

Hi,

klar, soweit hab ich grade nur nicht gedacht.
Danke.
Wirklich interesanter Thread damals 🙂

gruß