Ho il seguente compito:
Devo inviare diverse istruzioni una dopo l'altra all'hardware. L'istruzione successiva non viene mai inviata prima che venga ricevuta una risposta alle istruzioni precedenti (risposta valida o errore) o si verifica un timeout.
Attualmente tutte queste istruzioni hanno i propri ascoltatori con onReceived (risposta) e onError (ErrorCode) e l'istruzione successiva viene chiamata da onReceived of previous .. Come posso immaginare che questo codice non sia ottimale e aggiungendo nuove istruzioni alla sequenza, la classe diventa ancora più disordinata ed è più difficile da mantenere o eseguire il debug.
Il mio obiettivo sarebbe quello di avere una sorta di classe semplice che avrà un elenco di istruzioni nell'ordine corretto e ogni istruzione per avere modo di elaborare la propria risposta ricevuta e memorizzarla nel posto comune. Questa semplice classe manager chiamerebbe execute () o next () e l'istruzione corretta verrebbe inviata, la risposta verrebbe archiviata se corretta o il comando ripetuto un certo numero di volte in caso di errore.
Il modello di comando sembra essere la strada da percorrere, ma non sono sicuro di essere sulla buona strada e su come reagire alle risposte in modo corretto.