Tell, Don't Ask

Architecture 🟡 Mid

Definition

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.

Termes lies

#architecture#interview#principle