Command
Contexte : Encapsuler une requête sous forme d’objet, ce qui permet de paramétrer des clients avec des files d’attente, des requêtes et des opérations.
public interface ICommand{ void Execute();}
public class Receiver{ public void Action() => Console.WriteLine("Receiver action");}
public class ConcreteCommand : ICommand{ private Receiver _receiver; public ConcreteCommand(Receiver receiver) => _receiver = receiver; public void Execute() => _receiver.Action();}
public class Invoker{ private ICommand _command; public void SetCommand(ICommand command) => _command = command; public void PressButton() => _command.Execute();}Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »Annuler/rétablir dans les éditeurs : Chaque action utilisateur (insertion, suppression, formatage) devient une commande avec Execute() et Undo(). La pile d’historique stocke les commandes pour annuler/rétablir.
Exemple : Dans ASP.NET Core MVC, les actions de contrôleur sont des objets commande. De même, ICommand dans WPF/MVVM et BackgroundService avec file d’attente de commandes.