Почему принято суффиксировать обработчики событий с помощью 'handler'? Почему бы не поставить им префикс «handle»? - PullRequest
4 голосов
/ 11 августа 2009

Я заметил, что обычно (по крайней мере, в ECMAScript) суффиксируют обработчики событий с помощью 'handler': clickHandler, fooBarHandler и т. Д. Но я всегда думал, что имеет больше смысла добавлять к ним префикс ' ручка ': handleClick, handleFooBar и т. д.

С префиксной нотацией методы намного проще визуально анализировать (очень легко различить обработчики и другие вещи), быстрее находить (или игнорировать) текстовое завершение редактора, и они придерживаются соглашения, что методы должны быть глаголами (handleClick - глагол, clickHandler - существительное).

Итак, почему суффиксная запись распространена? Есть ли какая-то скрытая выгода, которую я не заметил?

Ответы [ 7 ]

3 голосов
/ 11 августа 2009

Это не имеет значения. Делайте то, что вам нравится, и ведите религиозные дебаты со своими коллегами.

2 голосов
/ 11 августа 2009

Традиционное соглашение об именах Flash использует префикс «on» вместо суффикса «Handler». Некоторые люди предпочитают имена методов глагола, некоторые предпочитают имена методов существительных. Имя onMouseClick - это скорее наречие, mouseClickHandler - это существительное, которое звучит как имя класса, а handleMouseClick - это глагол.

Обычно я использую суффикс «Обработчик», чтобы следовать соглашениям Adobe по кодированию , но префикс «on» намного короче и имеет (уже упомянутое) преимущество сортировки. Если вы находитесь в Flex Builder, нажмите Ctrl-O, и появится всплывающее меню, а при нажатии «on» отобразится каждый обработчик в файле.

2 голосов
/ 11 августа 2009

Я бы предположил, что одной из причин было бы избежать путаницы с дескрипторами , которые Википедия называет «особым видом интеллектуального указателя». А обработчик очень сильно отличается. Вероятно, это менее важно для именования методов - которые, очевидно, не являются указателями любого рода - чем для именования внутренней переменной, в которой хранится ссылка на метод.

2 голосов
/ 11 августа 2009

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

Как в, eventHandler.

1 голос
/ 11 августа 2009

Термин «дескриптор» уже имеет значение непрозрачного указателя / значения, используемого для косвенной ссылки на определенную структуру данных какого-либо вида. Он используется в объектно-ориентированном коде для косвенного взаимодействия со структурой данных через набор библиотечных функций. Хорошим примером дескриптора является тип FILE * языка C, который на самом деле является просто перечисляемым целочисленным значением в x86.

Следовательно, немного раздражает видеть это в другом месте. Это, вероятно, все, что это.

1 голос
/ 11 августа 2009

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

1 голос
/ 11 августа 2009

Для меня синтаксис суффикса (ClickHandler) выглядит более естественным. Это не сильно мешает завершению текста, так как вы обычно выполняете поиск операций (как в ClickHandler), а не ищете, какой из обработчиков поддерживается. Учитывая это, Visual Studio 2010 также поддерживает завершение текста суффиксом.

...