Aller au contenu
Filtrer les règles par style d’implémentation
Style
Tactique
Sévérité
mineure
S’applique à
  • Modèle (domain)

VO-06 · Deux valeurs sont égales quand leurs attributs le sont ​

Style
Tactique
Sévérité
mineure
S’applique à
  • Modèle (domain)

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.