Command
Architecture 🟡 MidDéfinition
Encapsulé une requête comme un objet, permettant de paramétrer, mettre en file d'attente, journaliser et annuler des opérations.
Analogie
Un bon de commande au restaurant : il capture l'intention, peut être mis en attente ou annule.
Exemple de code
class CreateUserCmd {
constructor(data) { this.data = data; }
execute() { return db.users.insert(this.data); }
undo() { return db.users.delete(this.data.id); }
}
Cas d'usage
Système undo/redo, file de taches asynchrones, CQRS command side.
Anti-pattern
Termes liés
En entretien
Explique-moi le pattern Command.
Il encapsule une requête comme un objet, ce qui permet de la paramétrer, la mettre en file d'attente, la journaliser et l'annuler. C'est la base des systèmes undo/redo, des files de tâches asynchrones et du côté command de CQRS.
Quel anti-pattern voit-on souvent dans l'implémentation du Command handler ?
Mettre la logique métier directement dans le command handler au lieu de la laisser dans le domaine, ce qui couple l'infrastructure à la règle métier. Le handler doit orchestrer, pas décider.
Fiche mise à jour le 2026-09-27