Value Object
Architecture 🟡 MidDefinition
Objet immutable defini par ses attributs, sans identite propre. Deux value objects avec les memes attributs sont egaux. Pas de setter.
Analogie
Un billet de 20 euros : tu ne te soucies pas de QUEL billet c'est, seule la valeur compte.
Exemple de code
class Money {
constructor(readonly amount: number, readonly currency: string) {}
add(other: Money) {
if (this.currency !== other.currency) throw Error('Mismatch');
return new Money(this.amount + other.amount, this.currency);
}
}
Cas d'usage
Modeliser des concepts sans identite : Money, Email, Address, DateRange.
Anti-pattern
Value object mutable — perd sa garantie d'egalite structurelle et d'immutabilite.