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

StackOverflow https://stackoverflow.com/questions/1068497

Вопрос

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

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

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

Это было полезно?

Решение

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

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

ХТХ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top