Java Object value und entity?

Diskutiere Java Object value und entity? im Java Basics - Anfänger-Themen Bereich.
G

Gansa

Was ist den der Unterschied zwischen Object value und Object enitity? Das ist mir leider nicht ganz klar.
Danke im Voraus!
 
T

TM69

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.
 
Zuletzt bearbeitet:
Thema: 

Java Object value und entity?

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben