Leçon 8 : Value Objects et records
Quand un prix n'est qu'un decimal et une devise qu'un string, rien n'empêche d'additionner des shekels et des dollars ou de muter un montant en plein calcul. Dans cette leçon, on construit des value objects avec les records C# — des valeurs immuables comparées par valeur — pour que ces erreurs soien
Un value object est comme un billet de 20 : peu importe quel billet exact tu as reçu — seule la valeur compte. Et on ne « corrige » pas un billet — on le remplace par un autre.
- Objet-valeur (Value Object)
- Une valeur définie uniquement par ses données — deux prix de 10 ILS sont la même valeur, sans identité séparée. Toujours immuable.
- type record
- Un type C# où le compilateur génère depuis une déclaration l'égalité par valeur (Equals/==), des propriétés init, un constructeur et ToString.
- immutabilité
- L'état de l'objet ne change jamais après création. Un « changement » se fait avec with — une nouvelle copie avec la valeur à jour, l'original intact.