У меня есть открытый статический класс, в котором есть некоторые общедоступные материалы, которые я использую в своем проекте. Является ли хорошей идеей добавить публичное статическое событие для событий входа и входа и зарегистрировать все связанные классы и формы для этого события, чтобы свести к минимуму код, поскольку в настоящее время у меня много кода в методах выхода из системы и входа в систему для обработки форм и разных классы при входе или выходе, вместо этого я просто запускаю событие при использовании методов входа в систему и выхода из системы и помещаю код в методы обработчиков событий для каждого класса, зарегистрированного для события. Это хорошая или плохая практика?Статические общедоступные события
ответ
Это плохо, потому что ваши объекты-слушатели (привязанные к тем статическим событиям) никогда не будут собраны в мусор, и вы должны вообще избегать статических событий. Вот почему родился слабый шаблон события. Хотя я не говорю, что вам нужно использовать этот шаблон (потому что я не очень хорошо информирован о ваших внутренних приложениях), но чтение об этом шаблоне поможет вам более тщательно разработать ваше приложение.
Существует (старый, но полезный) article по этому вопросу. Опять же я не говорю, что вы должны использовать этот образец; Я говорю, что изучение этого шаблона покажет вам, почему статические события не являются хорошей идеей.
Для этого типа сценария вы также можете использовать шаблон дизайна 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/
- 1. Две общедоступные статические переменные с разными значениями
- 2. Существуют ли общедоступные статические конечные переменные класса
- 3. Статические Vs Общедоступные переменные в многопользовательской среде
- 4. Плохо ли использовать общедоступные статические поля/переменные?
- 5. Когда следует использовать общедоступные/частные/статические методы?
- 6. Большие общедоступные статические переменные в Android
- 7. Ошибка синтаксиса в Eclipse (общедоступные статические переменные)
- 8. Когда вы должны использовать общедоступные статические методы
- 9. Access token Facebook API Graph - общедоступные события
- 10. Использует общедоступные статические переменные для скомпилированных запросов в приложениях ASP.NET?
- 11. Android: общедоступные переменные и статические переменные в одиночных точках?
- 12. NGINX как обратный прокси не может отображать статические общедоступные файлы
- 13. конечные общедоступные статические ints не могут использоваться в инструкции switch?
- 14. Являются ли перечисления менее ремонтопригодными, чем общедоступные статические конечные константы?
- 15. Java: место конструкторов, статические методы, общедоступные методы, частные?
- 16. Были ли удалены общедоступные статические поля в android.os.Environment? (Android 2.1)
- 17. Как получить все общедоступные статические методы класса в Java?
- 18. Статические общедоступные классы в PHP на промежуточном сервере
- 19. Статические функции или события в Flex?
- 20. события мыши с кнопками: Mouseover, OnClick, статические
- 21. C# - Статические события на нестатических классах
- 22. Файловые общедоступные серверы POI
- 23. охраняемые/общедоступные Внутренние классы
- 24. Плагин jQuery: общедоступные функции?
- 25. Динамически создавать общедоступные свойства
- 26. JQuery - Widget Общедоступные методы
- 27. Получить общедоступные поля?
- 28. Дополнительные общедоступные библиотеки
- 29. Интерфейсы и общедоступные методы
- 30. actionscript: неопределенные общедоступные переменные?