2011-11-02 14 views
5

Podczas wydarzeń szkoleniowych i delegatów nie mogę nie wspomnieć o wzorcu projektu Observer.Wydarzenia i delegaci. Jaki wzór wzorniczy?

Jestem w pewnym sensie nowicjuszem z wzorami C# i wzorami. Czy podczas używania zdarzeń i delegatów do mówienia, wypalania zdarzenia z formularza dziecka i odbierania go przez rodzica, jest to wzorzec projektowy Observer?

Jakie inne wzory wzorów są używane w wydarzeniach i delegatach?

Chciałbym wiedzieć o innych "rzeczach" (przepraszam za brak terminologii) w .NET opierają się na wspólnych wzorcach projektowych, takich jak te z Gangu Czwórki.

Myślę, że łatwiej jest zrozumieć przykłady kodu i wyjaśnienia z takimi tematami, jeśli można je powiązać ze wzorcem. W każdym razie osobiście.

Dzięki.

Odpowiedz

3

czy to wzór wzorcowy Observer?

Tak. Zdarzenia są w zasadzie specyficznym dla języka implementacją wzoru obserwacji obserwatora. Zostało to uznane za wystarczająco przydatne do budowania bezpośrednio na język w języku C#.

Wiele wzorców projektowych można zapisać za pomocą delegatów w języku C# - Ale to więcej szczegółów dotyczących implementacji niż sam wzorzec. Na przykład wzorzec odwiedzającego i wzorzec polecenia mogą być implementowane (dość elegancko) za pośrednictwem delegatów.

3

Masz rację - wydarzenia/delegaci są rzeczywiście implementacją wzorca Obserwatora.

Mówi się, że wzorzec ten jest obywatelem pierwszej klasy platformy .NET.

Oprócz Observer, istnieje oczywiście Iterator (zawsze, gdy używasz foreach i IEnumerable \ IEnumarable<T>).