События и делегаты.Какой шаблон дизайна? - PullRequest
5 голосов
/ 03 ноября 2011

Пока я изучаю события и делегатов, я не могу не думать о шаблоне проектирования Observer.

Я начинающий, как с C #, так и с шаблонами проектирования.При использовании событий и делегатов, скажем, для запуска события из дочерней формы и получения его родителем, это шаблон проектирования Observer?

Какие еще шаблоны проектирования используются в событиях и делегатах?

Мне было бы интересно узнать о других «вещах» (извините за отсутствие терминологии) в .NET, основанных на общих шаблонах проектирования, таких как из «Банды четырех».

Iдумаю, что с такими темами легче понять примеры кода и объяснения, если вы можете связать его с шаблоном.Лично в любом случае.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 03 ноября 2011

это шаблон проектирования Observer?

Да.События в основном являются реализацией шаблона проектирования наблюдателя для конкретного языка.Он был сочтен достаточно полезным, чтобы встроиться непосредственно в язык в C #.

Многие шаблоны проектирования могут быть написаны с использованием делегатов в C # - но это больше детали реализации, чем сам шаблон.Например, шаблон посетителя и шаблон команды могут быть реализованы (довольно элегантно) с помощью делегатов.

3 голосов
/ 03 ноября 2011

Вы правы - события / делегаты действительно являются реализацией шаблона Observer.

Говорят, что этот шаблон является первоклассным гражданином .NET Framework.

Apartот Observer, конечно, есть Iterator (всякий раз, когда вы используете foreach и IEnumerable \ IEnumarable<T>).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...