2011-11-02 15 views
5

Durante l'apprendimento di eventi e delegati non posso fare a meno di pensare al modello di progettazione di Observer.Eventi e delegati. Che motivo di design?

Sono una specie di livello principiante con C# e schemi di progettazione. Quando si utilizzano eventi e delegati per consentire, ad esempio, l'attivazione di un evento da un modulo figlio e l'acquisizione da parte del genitore, si tratta del modello di progettazione di Observer?

Quali altri schemi di progettazione sono utilizzati in eventi e delegati?

Sarei interessato a conoscere altre "cose" (mi dispiace per la mia mancanza di terminologia) in .NET sono basate su modelli di progettazione comuni, come quelli della Gang of Four.

Penso che sia più facile capire esempi di codice e spiegazioni con tali argomenti se è possibile rapportarlo a un modello. Personalmente comunque.

Grazie.

risposta

3

è che il modello di progettazione Observer?

Sì. Gli eventi sono fondamentalmente una implementazione specifica del modello di osservatore. È stato ritenuto abbastanza utile per costruire direttamente nella lingua in C#.

Molti schemi di progettazione possono essere scritti utilizzando i delegati in C# - Ma si tratta più di un dettaglio di implementazione che del modello stesso. Ad esempio, il pattern visitor e il pattern di comando possono essere implementati (abbastanza elegantemente) tramite delegati.

3

Hai ragione - gli eventi/delegati sono in effetti un'implementazione del pattern Observer.

È stato detto che il modello è un cittadino di prima classe del framework .NET.

Oltre all'Observer, c'è ovviamente Iterator (ogni volta che si utilizza foreach e IEnumerable \ IEnumarable<T>).

Problemi correlati