Il pattern Command incapsula una richiesta come oggetto — trasformando un'azione in un oggetto autonomo con tutte le sue informazioni. Ciò abilita l'accodamento, il logging, l'undo/redo, e il disaccoppiamento tra il richiedente e l'esecutore.
Cosa fa il pattern Command
COMMAND → encapsulate an action/request as an OBJECT (with its data and an execute method):
→ a command object knows WHAT to do and has the info to do it
→ the invoker triggers commands without knowing their details
→ decouples the object that INVOKES from the object that PERFORMS the action
→ "turn an action into an object" → store, pass, queue, log, undo it
