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
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.