(Matthias Brandt, [email protected])
A Value Object is an immutable object in software design that represents a specific value with no identity. These objects are primarily used in Domain-Driven Design (DDD) to model concepts in a problem domain. They are characterized by their immutability, meaning they cannot be changed once created, and their focus on encapsulating a specific value or set of values required for a business application.
From: https://www.dremio.com/wiki/value-object
Map<Int, Int>
Map<PersonId, Age>
fun update(personId: Int, age: Int)
wie war die Signatur noch gleich?
update(18,42)
aka. coding time!
- Type Aliases
- (data class)
- value class
- Einheiten (z.B. Power(watt))
- Ist es ein Identifier? -> Sowohl technische, als auch Domänen-IDs
- IP
- MAC-Addresse
- DeviceId (Domänen-ID)
- DB-Primary Key
- Register-Nummer
- ...
- Beschreibende Felder (addendum, Beschreibungstext, etc.)
- DateTime, Interval (alles, was schon mehr Beschreibt als Long/Int/String)
- Kurzlebige Objekte (bsp: Long als timestamp kommt rein, wird sofort in OffsetDateTime gemappt)
- Bessere Lesbarkeit
- Mehr Typsicherheit
- value classes (wenn unterstützt, sonst data class)