Immagina che mentre usi lo schema di comando, ho un bel po 'di comandi diversi (> 30), ora la maggior parte sono molto simili ma dipendono da una risposta dopo l'esecuzione (pensa ad un esempio di cena, come il cameriere che ha bisogno di feedback dall'ospite, se hanno ricevuto il pasto giusto).
Ora sostanzialmente potrei ridurre drasticamente il numero di comandi e ricevitori esternalizzando la logica aziendale associata alla risposta a un oggetto esterno, che il cliente imposta sulla creazione del comando e che verrà inoltrata alla risposta, il ricevente sta ottenendo. (scusa per quella frase)
Ora avrebbe senso, o dovrei piuttosto creare un diverso ricevitore e comando per ogni tipo di comando e impacchettare la logica aziendale, preoccupata della risposta generata, al loro interno.
Penso che un po 'di entrambi abbia senso in una certa misura, perché in sostanza quei comandi sono in realtà cose diverse e trattarli allo stesso modo è solo un'astrazione. Ma accoppiare la "logica di risposta" al comando e / o al suo ricevitore, oltre a inquinare l'applicazione con molte classi per lo più simili.
Quale sarebbe il modo più elegante (se esiste qualcosa di simile), per andare su questo?