Questa è più una domanda di design e speravo di ottenere pro e opinioni su ciò che ha senso.
SFONDO
Immagina qualcosa che contenga uno o più ascoltatori di eventi. Ogni tanto la cosa lancia eventi ai suoi ascoltatori.
PROBLEMA
Il problema è ovviamente che gli ascoltatori che seguono dopo un ascoltatore che non hanno mai avuto occasione di conoscere l'evento. Questo significa che l'ordine degli ascoltatori è quindi un problema.
SOLUZIONE # 1
Esegui tutti gli ascoltatori che ricevono eccezioni generate. Ciò significa che tutti gli ascoltatori vengono licenziati ma di per sé presentano altri problemi.
Cosa si dovrebbe fare con le eccezioni intercettate?
- Un'opzione è catturarli tutti e dopo aver sparato a tutti gli eventi lancia un'altra eccezione che contiene tutti i problemi. ++
- L'altra opzione è di accedere ~~
- L'ultimo è semplicemente ignorare queste eccezioni. -
- Gli ascoltatori vengono eseguiti in isolamento, il che è positivo. ++
SOLUZIONE # 2
Questa opzione è semplicistica e consente semplicemente a qualsiasi eccezione generata di uscire da un ascoltatore, con il risultato che gli ascoltatori rimanenti non vengono mai licenziati. I problemi con questo approccio significano che
- l'ordine degli ascoltatori è significativo (-)
- semplice da implementare (+).
- prima che gli ascoltatori possano influenzare il chiamante
Q
Quale approccio ha senso e causa il minor numero di problemi. Ha davvero senso isolare gli ascoltatori in modo che ottengano gli eventi ma non possono causare l'interruzione di un'operazione in esecuzione se si lanciano?