2013-05-27 4 views
0

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

ответ

1

Это плохо, потому что ваши объекты-слушатели (привязанные к тем статическим событиям) никогда не будут собраны в мусор, и вы должны вообще избегать статических событий. Вот почему родился слабый шаблон события. Хотя я не говорю, что вам нужно использовать этот шаблон (потому что я не очень хорошо информирован о ваших внутренних приложениях), но чтение об этом шаблоне поможет вам более тщательно разработать ваше приложение.

Существует (старый, но полезный) article по этому вопросу. Опять же я не говорю, что вы должны использовать этот образец; Я говорю, что изучение этого шаблона покажет вам, почему статические события не являются хорошей идеей.

0

Для этого типа сценария вы также можете использовать шаблон дизайна Mediator для подписки и уведомления о «глобальных» событиях.

Mediator.Subscribe("Login", callbackForLogin); 

Mediator.Notify("Login", parameters); 

Вы можете использовать «WeakReference» при реализации этого шаблона, чтобы избежать утечек памяти (ссылки не будет очищаться).

например: http://zamjad.wordpress.com/2012/03/05/using-mediator-to-communicate-between-user-controls-part-7/

Смежные вопросы