Objektkopie
# Objektkopie

Eine Objektkopie, auch Klon, ist in der Softwaretechnik eine genaue Kopie eines Objekts, also einer Instanz eines abstrakten Datentyps. Dabei muss der Typ des Objekts erhalten bleiben, und es müssen sämtliche Attributwerte in das Zielobjekt kopiert werden. Grundsätzlich wird unterschieden zwischen

* einer flachen Kopie (shallow copy), bei welcher der Klon nicht tatsächlich Kopien der Attribute erhält, sondern lediglich Verweise auf die Attribute des Ursprungsobjekts, und
* einer tiefen Kopie (deep copy), bei der sämtliche Attribute tatsächlich ihrerseits tief kopiert werden.

Eine lazy copy garantiert gleichsam einer tiefen Kopie, dass sich Änderungen an Attributen nicht auf das kopierte Objekt auswirken, tatsächliche Kopien der Attribute finden jedoch nur bei Bedarf statt. Beim Erstellen der Objektkopie werden zunächst alle Attribute nur über eine flache Kopie kopiert; sobald der erste Schreibzugriff auf ein Attribut stattfindet, der jene Garantie verletzen könnte, wird eine tiefe Kopie durchgeführt.

