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

ENT-14 · Une entity naît complète ​

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

Signal ​

  • Une entity que l’on peut construire dans un état invalide : constructeur vide suivi de setters, paramètres obligatoires rendus optionnels, méthode init() à appeler ensuite.
  • Un appelant qui crée directement une entity dont la création devrait être contrôlée par un autre objet.

Pourquoi ​

Le constructeur reçoit assez d’état pour identifier l’entity et la retrouver. Avec une génération précoce, il reçoit au moins l’identité. Si un invariant dépend d’un état non nul ou calculé, cet état passe par le constructeur.

Chaque affectation passe par des setters privés qui vérifient leurs préconditions. Une création complexe ou contrôlée passe par une factory. Par exemple, seul wallet.debit() peut créer une LedgerEntry qui débite le wallet : l’écriture part toujours du bon wallet, et un wallet fermé ou bloqué au débit la refuse.

Exceptions ​

La reconstitution depuis la persistance, qui peut prendre un chemin dédié et caché.

Correction ​

Un constructeur avec les paramètres obligatoires et leurs préconditions, réservé au module, et une factory nommée dans le langage pour les créations contrôlées (FAC-01, FAC-03).