Retour à l'acceuil

Information sur l'article

Categorie: ddd, csharp, value-object

Mise à jour: 2025-08-09

Temps de lecture: 6 min

Value Object en C# : immutabilité et égalité par valeur

Value Object en C# : immutabilité et égalité par valeur

Mise à jour: 2025-08-09


Value Object


En Domain-Driven Design (DDD), un Value Object (VO) représente une valeur sans identité propre. Deux VO sont égaux si leurs valeurs internes sont égales. Un VO est immuable, comparé par valeur, et auto-cohérent (validations à la construction).


Quand l’utiliser ?


- Représenter des concepts métier atomiques: Money, Email, Distance, DateRange.

- Garantir des invariants (unités, formats, normalisation) à la frontière du domaine.

- Éviter les primitives à tout-va (stringly-typed), augmenter l’expressivité du modèle.


Diagramme



Exemple C# minimal



Points clés


- Immuable: modifié via création d’une nouvelle instance (Add, With, etc.).

- Égalité par valeur: idéal avec les records C# (Equals/GetHashCode générés).

- Valide à la construction: les invariants métier sont centralisés et testables.


Conclusion


Merci d’avoir lu cet article. Si vous avez des questions, envie d’améliorer l’exemple ou de suggérer un sujet, contactez-moi: je serai ravi d’échanger.