Value Object

Architecture 🟡 Mid

Definition

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.

Termes lies

#architecture#interview#ddd