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

UC-10 · Les flags d’affichage se calculent hors du modèle ​

Style
Les deux styles
Sévérité
mineure
S’applique à
  • Adapters driving
  • Modèle (domain)

Signal ​

  • Un aggregate ou un value object qui porte des propriétés destinées à l’écran : un booléen qui active un bouton, la couleur d’un statut, une chaîne formatée, un libellé traduit.
  • Des getters ajoutés au domaine pour satisfaire une view ou un framework de sérialisation.

Pourquoi ​

Avec un presentation model, l’adapter de présentation tire les flags de la view de l’état du domaine. Activer un bouton peut dépendre de plusieurs propriétés du modèle, sans correspondre à aucune d’elles. Le domaine ne fournit pas ces propriétés.

Le même adapter comble l’écart entre le langage du modèle (summary()) et un framework qui exige des getters (getSummary()).

Exceptions ​

Aucune.

Correction ​

Un presenter ou un mapper de réponse, dans driving/http, qui calcule les flags à partir de la view que la query a renvoyée.

Adaptation ​

Le presentation model vise une interface riche ou un client desktop. Sur un backend NestJS, le presenter ou le mapper de réponse de driving/http joue ce rôle, à partir de la view d’une query : driving n’importe pas domain.

La limite à tenir : la règle métier qui décide si une action est permise reste dans le domaine (AGG-01) ; un wallet fermé ou bloqué au débit refuse lui-même le débit. Seule sa traduction en flag d’écran sort du modèle.

Voir aussi ​

VO-08 (pas de libellés affichables dans le modèle), API-01, CTX-10.