Eigenschaften des Basisobjekts auf vererbtes Objekt übertragen

03/02/2008 - 15:30 von Bernhard König | Report spam
Hi NG,

ich habe von einem komplexeren Basisobjekt eine erbende Klasse mit einigen
zusàtzlichen Properties erstellt.

Die Daten (Eigenschaften), die eine Instanz des Basisobjektes halten kann,
möchte ich jetzt allerdings möglichst einfach auf eine Instanz des erbenden
Objekts übertragen.

Nur - wie stelle ich das am effizientesten an, ohne jetzt Zeile für Zeile
jedes Property einzeln zu kopieren? Vor allem im Hinblick auf eventuell
spàtere Änderungen am Basisobjekt wàre das vermutlich nicht zielführend.

Ich hàtte mir gedacht, dass dies aufgrund der gemeinsamen, identen Basis
beider Objekte keine Hexerei sein kann, finde aber auch nach intensiver
Suche im Internet keinen Ansatz.

Vielen Dank im Voraus für jeden Tipp ;-)

Danke!

lg
b.
 

Lesen sie die antworten

#1 Peter Fleischer
03/02/2008 - 18:48 | Warnen spam
"Bernhard König" schrieb im Newsbeitrag
news:

ich habe von einem komplexeren Basisobjekt eine erbende Klasse mit einigen
zusàtzlichen Properties erstellt.

Die Daten (Eigenschaften), die eine Instanz des Basisobjektes halten kann,
möchte ich jetzt allerdings möglichst einfach auf eine Instanz des
erbenden
Objekts übertragen.

Nur - wie stelle ich das am effizientesten an, ohne jetzt Zeile für Zeile
jedes Property einzeln zu kopieren? Vor allem im Hinblick auf eventuell
spàtere Änderungen am Basisobjekt wàre das vermutlich nicht zielführend.

Ich hàtte mir gedacht, dass dies aufgrund der gemeinsamen, identen Basis
beider Objekte keine Hexerei sein kann, finde aber auch nach intensiver
Suche im Internet keinen Ansatz.



Hi Bernhard,
wenn ich es richtig verstanden habe, willst du eine Kopie erzeugen, auf die
du mit dem erbenden Typ zugreifst. Da wàre noch zu klàren, ob du eine flache
oder eine tiefe Kopie wünschst.

Die erste Möglichkeit ist eine eigene Clone-Methode, die in der erbenden
Klasse alle Variablen (bzw. die Eigenschaftswerte) kopiert. Wenn jetzt die
Basisklasse auch eine überschreibbare Clone-Methode hat, dann wird diese
Clone-Methode in der erbenden Klasse aufgerufen. Damit gibt es kein Probleme
bei Änderungen in der Baissklasse, da mit den Änderungen in der Basisklasse
auch die Clone-Methode der Basisklasse angebpasst wird.

Die zweite Möglichkeit wàre eine "PropertyBag"-Lösung, die mit einer
Serialisierung und Deserialisierung gelöst werden könnte. Die Clone-Methode
serialisiert das eigene Objekt, erzeugt ein neues mit den deserialisierten
Daten und gobt dieses zurück.


Viele Gruesse

Peter

Ähnliche fragen