Ho una libreria con diversi livelli. La libreria è un'API hardware e ha diversi thread. L'applicazione che lo sta utilizzando non ha un'interazione diretta dell'utente, l'interfaccia utente è solo per la visualizzazione. Avevo bisogno di un modo per dire all'utente se c'era un errore e di cosa si trattava. Così ho creato un evento di errore che passa un messaggio sui livelli.
Questa non sembra una diretta violazione della separazione delle preoccupazioni, anche se forse un'area grigia.
La libreria dovrebbe recuperare dalla maggior parte degli errori da sola. Ad esempio: se perde la connessione all'hardware continua a provare a riconnettersi, quando lo fa può continuare.
Avevo bisogno di un modo per cancellare il messaggio di errore dallo schermo una volta eliminato l'errore, quindi ho creato un evento ClearErrorMessage che viene generato una volta che la libreria continua. Questo dice all'interfaccia utente di cancellare il messaggio di errore dallo schermo.
Il mio evento ClearErrorMessage sembra essere una chiara violazione della separazione delle preoccupazioni dal momento che la biblioteca non dovrebbe preoccuparsi di cosa c'è sopra.
Esiste un modo migliore per gestire ciò che è più modulare in natura?