VO-06 · Deux valeurs sont égales quand leurs attributs le sont
Signal
- Des value objects comparés par référence (
===). - Aucune méthode d’égalité, ou une égalité qui ignore une partie des attributs.
Pourquoi
L’égalité de deux value objects compare le type, puis chaque attribut. Deux instances égales sont interchangeables : affecter l’une à la place de l’autre ne change pas la valeur de la propriété.
Exceptions
Aucune.
Correction
Un equals(other) qui compare le type et tous les attributs, en déléguant aux value objects imbriqués.
Adaptation
TypeScript n’a pas de contrat equals. Deux instances construites séparément ne sont jamais === : une méthode d’égalité explicite est donc nécessaire.
Voir aussi
ENT-07 traite de l’égalité des entities, qui repose sur l’identité. La vue d’ensemble montre la délégation : Money.equals compare le montant, et confie la devise à Currency.equals.