Command
Architecture 🟡 MidDefinition
Encapsule une requete comme un objet, permettant de parametrer, mettre en file d'attente, journaliser et annuler des operations.
Analogie
Un bon de commande au restaurant : il capture l'intention, peut etre 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
Systeme undo/redo, file de taches asynchrones, CQRS command side.
Anti-pattern
Mettre la logique metier dans le command handler au lieu du domaine.