Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Um den Unterschied zwischen Object value (Muster von Evens - aus dem Buch über DDD) und Object entity zu verstehen, sollte man sich erstmal mit der Frage der Gleichheit auseinander setzen:
Referenzgleichheit: Beide Object nutzen belegen den gleichen Speicher. Sie sind also identisch
java:
Code:
Object a = new Object()
boolean isEqual = (a == a); // Referenz gleich
Object b = new Object()
Object c = new Object()
boolean isEqual = (b == c); // nicht Referenzgleich
Bezeichnergleichheit: Beide Objecten benutzen nicht den gleichen, die Werte ihrer Attribute sind identisch:
Code:
class ClassA {
int value = 12;
String string = "Hallo"
}
class ClassB {
String string = "Hallo"
int value = 12;
}
sie sind also gleich bezogen auf deren Werte.
Java:
Code:
ClassA a = new ClassA();
ClassB b = new ClassB();
boolean isEqual = a.equals(b); // Bezeichnergleich
b.value = 3;
boolean isEqual = a.equals(b) // nicht Bezeichnergleich
Und Strukturelle Gleichheit: Dieses ist gegeben, wenn alle Attribute eines Objektes mit den Attributen des anderen Objekts übereinstimmen
Der signifikante Unterschied zwischen einem Wert und einem Entity Objekt besteht darin, wie wir die Instanzen miteinander vergleichen. Bezeichnergleichheit bezieht sich auf Entity Objekte, wohingegen ein Wert Objekt sich auf die Strukturelle Gleichheit bezieht.
Mit anderen Worten: Ein Wertobjekt ist ein unveränderlicher Typ, der nur durch seine Eigenschaften unterscheidbar ist. Das heißt, im Gegensatz zu einer Entity, die eine eindeutige Kennung hat und auch dann unterschiedlich bleibt, wenn ihre Eigenschaften ansonsten identisch sind.