Tell, Don't Ask
Architecture 🟡 MidDefinition
Dis a un objet ce qu'il doit faire au lieu de lui demander son etat puis decider a sa place. Favorise l'encapsulation du comportement.
Analogie
Dire au taxi 'emmene-moi a l'aeroport' au lieu de lui demander la carte et conduire toi-meme.
Exemple de code
// Ask (mauvais):
if (account.getBalance() >= amount) account.setBalance(...);
// Tell (bon):
account.withdraw(amount); // la logique est interne
Cas d'usage
Eliminer les Anemic Domain Models en mettant la logique dans les objets du domaine.
Anti-pattern
Getters/setters partout avec la logique metier dans les services.