Sto lavorando su un piccolo progetto codificato in Python che utilizza un singolo pulsante per l'input e un LED RGB come feedback, che risponde alle pressioni dei pulsanti e agli eventi asincroni dalla rete.
Poiché il feedback è diventato più complesso (molti di if, els e timer), è diventato evidente che un modello di progettazione dell'interfaccia utente, come MVC o MVP, avrebbe aiutato a separare la funzionalità.
Il codice è già in gran parte MVC in stile, in cui l'input del pulsante è legato a un thread del controller e il LED ha un thread View in cui le animazioni vengono caricate sotto il controllo del controller. Esiste un modello per l'interazione con un dispositivo remoto.
Ad esempio, il pulsante avvia una richiesta HTTP chiamando il controller, che avvia una richiesta asincrona al modello e restituisce una vista che lampeggia il LED per far sapere all'utente che la richiesta è in volo.
Dove sto lottando è come gestire la risposta dal Modello quando la richiesta HTTP è completata. La vista potrebbe sondare il modello, ma sembra uno spreco e forse lento. Il che mi chiede se il Modello debba aggiornare la Vista sollevando un evento o utilizzando un callback fornito dal controller, ma questi legano tecnicamente il Modello alla Vista.
Mi sto anche chiedendo se MVP sarebbe un approccio migliore a questo e usare il Presenter per arbitrare tra Visualizza e Modello.
I tuoi pensieri sull'approccio per questo gadget totalmente sovradimensionato saranno apprezzati.