modalità di comando è un modello di progettazione comportamentale che converte una richiesta in un oggetto separato che contiene tutte le informazioni relative alla richiesta. Questa trasformazione consente di parametrizzare metodi in base a richieste diverse, ritardare o accodare richieste e implementare operazioni annullabili.
Struttura della modalità di comando
mittente La classe (Sender) - nota anche come "Invoker" - è responsabile dell'inizializzazione della richiesta, che deve contenere una variabile membro per memorizzare un riferimento all'oggetto comando. Il mittente attiva il comando senza inviare una richiesta direttamente al destinatario. Si noti che il mittente non è responsabile della creazione dell'oggetto comando: solitamente ottiene un comando pregenerato dal client tramite un costruttore.
OrdineL'interfaccia (comando) di solito dichiara solo un metodo per eseguire il comando.
Ordini specifici (Comandi Concreti) implementerà varie tipologie di richieste. Il comando specifico in sé non completa il lavoro, ma delega la chiamata a un oggetto di logica aziendale. Ma per semplificare il codice, queste classi possono essere unite. I parametri richiesti per ricevere il metodo di esecuzione dell'oggetto possono essere dichiarati come variabili membro di comandi specifici. È possibile rendere immutabile l'oggetto comando e consentire solo l'inizializzazione di queste variabili membro tramite il costruttore.
ricevitore La classe (Destinatario) contiene parte della logica aziendale. Quasi ogni oggetto può fungere da ricevitore. La maggior parte dei comandi tratta solo i dettagli su come passare la richiesta al destinatario e il destinatario svolgerà da solo il lavoro vero e proprio.
cliente (Client) creerà e configurerà oggetti comando specifici. Il client deve passare tutti i parametri della richiesta, inclusa l'entità ricevente, al costruttore del comando. Successivamente il comando generato potrà essere associato ad uno o più mittenti.