Sto creando un'app Windows Form:
- È client-server. Autorizzazione, quindi caricare alcuni dati dal server, quindi inviare di tanto in tanto alcune statistiche.
- Si dovrebbe seguire una procedura di bootstrap, quindi avvia i calcoli (un processo separato). Quindi puoi metterlo in pausa in qualsiasi momento, probabilmente pianificandolo per ricominciare il computing, o chiuderlo completamente.
Il mio codice è pieno di verifiche come "Sono disponibili questi dati? Caricalo dal server." oppure "Sono disponibili questi dati? Richiedilo all'utente". oppure "È previsto un avvio? Annullalo, inizia ora.".
Mi sento come se la mia app fosse una macchina a stati. È come se avesse uno stato come questo: AUTH
/ WORKING
/ PAUSED
/ PAUSED_SCHEDULED
/ SHOWING_ERROR_MSG
più un gruppo di flag di disponibilità dei dati. Il mio codice avvia le transizioni da stato a stato e le esegue, fondamentalmente cerca di mantenere l'app in uno stato corretto. Il codice è disordinato con i controlli di disponibilità dei dati, il bootstrap lungo in ogni singolo metodo, tonnellate di codice fail-retry ovunque.
Ci sono schemi e schemi di progettazione che posso usare? C'è qualcosa di buono e ampiamente usato? Ci sono dei caveat che trascuro? Sembra che il mio codice potrebbe essere un livello più di alto livello.