Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Gemischte Verwendung von Class und TRecord

  Alt 27. Okt 2017, 13:48
Ich bin jetzt vielleicht blöd, aber wieso ist TPosition ein ValueObject?
Der deutsche Wikipedia Eintrag ist da möglicherweise nicht so klar wie die englische Beschreibung:

Zitat von en.wikipedia.org:
In computer science, a value object is a small object that represents a simple entity whose equality is not based on identity: i.e. two value objects are equal when they have the same value, not necessarily being the same object.
Bei einer Position ist in aller Regel: (4,5,6) = (4,5,6) auch wenn das zwei unterschiedliche Instanzen/Entitäten sind. Wenn nun aber 2 Objekte in einem Koordinatensystem an derselben Position sind und eins davon sich ändert, weise ich ihm eine neue Position zu (auch, wenn sich nur X, Y oder Z geändert hat). Hätte ich möglicherweise Objekte dafür, ergäbe sich die Gefahr, dass es sich um dieselben Instanzen handelt, weil ich irgendwo geschrieben habe:

Delphi-Quellcode:
pos := TPosition.Create(4, 5, 6);
obj1.Pos := pos;
obj2.Pos := pos;
Angenommen ich habe nun noch Setter für X, Y, Z. Wenn ich nun obj1.Pos.X := 7; schreibe, ändert sich dann die Position von obj2 möglicherweise auch.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat