Value Object
Die Vergleichsoperation einfacher Objekte wird durch eine neue ersetzt, die auf den Attributwerten und nicht auf der Objektidentität basiert.
siehe: GitHub - ReadMe, PEAA, PK
Beispiel
Im Beispiel betreiben wir ein wenig Bruchrechnung, ganz so, wie Sie das noch aus der Schule kennen. Ein Bruch wird dabei durch eine Fraction-Instanz repräsentiert. Mit diesen Instanzen können Clients rechnen.
Das Ergebnis einer Kalkulation drückt sich in einer neuen Fraction-Instanz aus.
Fraction-Instanzen sind immutable, ihre Attribute bzw. ihr Wert ändert sich nie.
Um das Zusammenspiel im Detail beobachten zu können, setzen Sie den log-level auf DEBUG in der logback.xml und führen den zugehörigen TestCase aus. Beachten Sie, wie die Identität (fraction1.equals(fraction2)) definiert ist!