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

SRV-02 · Pas de méthode statique sur un aggregate root pour une opération qui ne lui appartient pas ​

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

Signal ​

Une méthode statique sur la classe d’un aggregate root, qui reçoit d’autres aggregates (Wallet.monthlyFees(transfers)), ajoutée parce que l’opération n’avait pas de place évidente.

Pourquoi ​

Ce réflexe est un code smell. Il signale souvent un domain service manquant. Si l’on hésite entre Wallet et Transfer pour porter le calcul, l’opération n’appartient à aucun des deux.

Exceptions ​

Une factory method statique qui crée une instance de sa propre classe (FAC-03).

Correction ​

Un domain service nommé dans le langage (FeeCalculator). Il va chercher ce dont il a besoin et renvoie un value object.