Naming conventions 为什么用';处理程序';?为什么不在它们前面加上';句柄';?

Naming conventions 为什么用';处理程序';?为什么不在它们前面加上';句柄';?,naming-conventions,Naming Conventions,我注意到在事件处理程序后面加上“handler”是很常见的(至少在ECMAScript中是如此):clickHandler,fooBarHandler,等等……但我一直认为在它们前面加上“handle”更有意义:handleClick,handleFooBar,等等 使用前缀表示法,方法更容易直观地解析(很容易区分处理程序和其他东西),在编辑器的文本完成时更快地查找(或忽略),并且它们遵循方法应该是动词的约定(handleClick是动词,clickHandler是名词) 那么,为什么后缀符号很

我注意到在事件处理程序后面加上“handler”是很常见的(至少在ECMAScript中是如此):
clickHandler
fooBarHandler
,等等……但我一直认为在它们前面加上“handle”更有意义:
handleClick
handleFooBar
,等等

使用前缀表示法,方法更容易直观地解析(很容易区分处理程序和其他东西),在编辑器的文本完成时更快地查找(或忽略),并且它们遵循方法应该是动词的约定(
handleClick
是动词,
clickHandler
是名词)


那么,为什么后缀符号很常见呢?有什么我没有注意到的隐藏的好处吗?

谁知道呢,但我想既然它们被称为事件处理程序,遵循这种模式是有意义的


与中一样,
eventHandler

For me后缀语法(ClickHandler)看起来更自然。它不会对文本完成造成太大干扰,因为您通常会搜索操作(如在ClickHandler中),而不会搜索支持哪个处理程序。注意到这一点,Visual Studio 2010还支持通过后缀来完成文本。

Handle听起来更为必要,就像您专门调用它来完成某些事情一样。处理程序更异步,并且在程序的直接流之外。

这无关紧要。做你喜欢做的事,并与你的同事进行宗教辩论。

我认为其中一个原因是避免混淆,维基百科称之为“一种特殊的智能指针”。处理者是非常不同的。与命名存储方法引用的内部变量相比,命名方法(显然不是任何类型的指针)的问题可能要小得多。

传统的Flash命名约定使用“on”作为前缀,而不是“Handler”作为后缀。有些人喜欢动词方法名,有些人喜欢名词方法名。mouseClick的名字更像一个副词,mouseClickHandler是一个听起来像类名的名词,handleMouseClick是一个动词

我通常在后面使用“Handler”后缀,但是“on”前缀要短得多,并且具有排序的优点(已经提到)。如果您在Flex Builder中,点击Ctrl-O,它将弹出一个快捷菜单,只需键入“on”即可显示文件中的每个处理程序。

术语“句柄”已经有一个不透明指针/值的含义,用于间接引用某种特定的数据结构。它用于面向对象代码中,通过一组库函数间接与数据结构交互。句柄的一个很好的例子是C语言文件*类型,它实际上只是x86上的一个枚举整数值

因此,在别处看到它有点烦人。可能就这些了