Command

Architecture 🟡 Mid

Dé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

Mettre la logique métier dans le command handler au lieu du domaine.

Termes liés

#architecture#interview#gof#behavioral

En entretien

  1. 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.

  2. 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

← → au clavier pour passer d'une fiche à l'autre