Это хорошая практика для реализации Pattern Template Pattern с помощью событий C#?
Сейчас я пытаюсь понять некоторый код, и я нашел шаблон, который кажется мне немного странным. Существует пользовательский класс управления с событием EditorOpen. Сначала я думал, что это имя неверно, потому что оно не заканчивается на "-ing" или "-ed", как предлагает MSDN. Однако позже я обнаружил, что это событие не сообщает о том, что что-то происходит, а скорее является НЕКОТОРЫМ ЗАПРОСОМ, чтобы выполнить фактическую операцию. Это клиентский код, который должен выполнить "открытие редактора"!
Я был немного удивлен, обнаружив, что это на самом деле некая форма шаблона проектирования шаблона, в которой может быть несколько действий, связанных с одним заполнителем действий.
Я думаю, что это довольно интересно, но я также боюсь, что использование событий в таких случаях может вводить в заблуждение. Во всяком случае, речь идет не о СОБЫТИЯХ, а о ЗАПРОСАХ. Хм... может быть, было бы хорошо, если бы только имя события было "EditorOpeningRequest" или "EditorOpeningRequested". Как вы думаете? Как бы вы прокомментировали это во время проверки кода?
1 ответ
Если у вас нет очень веской причины иметь несколько объектов, обрабатывающих запрос на открытие редактора, я бы предложил, чтобы это был делегат, а не событие. Это ограничивает вас одним обработчиком запроса, что в этом случае кажется более логичным.
Более того, я бы изменил имя на OpenEditor, так как это более наглядно относительно того, что вы собираетесь ожидать. Если вы придерживаетесь модели событий, тогда OpenEditorRequested может быть лучшим именем.
НТН.