Это хорошая практика для реализации Pattern Template Pattern с помощью событий C#?

Сейчас я пытаюсь понять некоторый код, и я нашел шаблон, который кажется мне немного странным. Существует пользовательский класс управления с событием EditorOpen. Сначала я думал, что это имя неверно, потому что оно не заканчивается на "-ing" или "-ed", как предлагает MSDN. Однако позже я обнаружил, что это событие не сообщает о том, что что-то происходит, а скорее является НЕКОТОРЫМ ЗАПРОСОМ, чтобы выполнить фактическую операцию. Это клиентский код, который должен выполнить "открытие редактора"!

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

Я думаю, что это довольно интересно, но я также боюсь, что использование событий в таких случаях может вводить в заблуждение. Во всяком случае, речь идет не о СОБЫТИЯХ, а о ЗАПРОСАХ. Хм... может быть, было бы хорошо, если бы только имя события было "EditorOpeningRequest" или "EditorOpeningRequested". Как вы думаете? Как бы вы прокомментировали это во время проверки кода?

1 ответ

Решение

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

Более того, я бы изменил имя на OpenEditor, так как это более наглядно относительно того, что вы собираетесь ожидать. Если вы придерживаетесь модели событий, тогда OpenEditorRequested может быть лучшим именем.

НТН.

Другие вопросы по тегам