abbonamento agli eventi delle classi nidificate

3

È corretto che una classe nidificata generi un evento e che per la classe genitore che si iscrive a quell'evento successivamente si alzi un altro evento, a cui è abbonata la classe genitrice - passando quindi l'evento originale alla gerarchia delle classi?

Potrebbe essere facile spiegare come questo ...

Abbiamo ...

Class A
Class B
Class C

Operazione ...

  1. La classe C genera un evento
  2. La Classe B si iscrive a quell'evento, alla notifica genera un altro evento
  3. La Classe A si iscrive all'evento di Classe B, alla notifica fa qualcosa

Quindi l'evento originale si è verificato in Classe C e Classe A si sta occupando di esso.

L'utilizzo di questo metodo richiede che i gestori di eventi della classe media (Classe B) abbiano la sola funzione di passare la notifica: mi sembra un po 'puzzolente.

    
posta Rob 06.12.2011 - 15:54
fonte

3 risposte

4

Sì, è OK ed è un buon modo per nascondere i dettagli dei tuoi eventi interni e avere una classe per connettere i tuoi ascoltatori di eventi, invece di diversi. Ciò non significa che avere più eventi in più classi sia sbagliato, lontano da ciò, solo che aiuta ad aumentare la comprensione del codice se tutti gli eventi relativi a un particolare dominio aziendale si trovano nello stesso "luogo", anche se il vero interno il lavoro è svolto in classi "child".

C'è persino un nome per questo: evento ribollente . Potresti essere interessato a leggere l' articolo MSDN su questo argomento .

    
risposta data 06.12.2011 - 16:01
fonte
1

Primo: sono d'accordo che va bene. Ma se ti accorgi di farlo spesso potresti voler utilizzare un bus eventi.

    
risposta data 06.12.2011 - 22:04
fonte
1

Un'alternativa sarebbe quella di restituire IObservable invece di creare eventi. Ciò consentirebbe a B di avere un singolo metodo che semplicemente deleghi alla C interna invece di dover avere il proprio evento e collegare un gestore di eventi alla C interna.

    
risposta data 07.12.2011 - 06:36
fonte

Leggi altre domande sui tag