OOP:方法名称分类

问题描述:

最近我一直在使用OOP中的方法名称,我决定对它进行排序。为此,我试图从自然语言的角度对方法名称进行分类。到目前为止,我已经想通了这些类别:OOP:方法名称分类

1] 命令:

elem_list.append('x') 
bank_account.deposit(50) 
game.get_score() 

appenddepositget_score的命令在这里。你要求对象做某件事情(或者要求翻译者对他们做些什么 - 取决于观点)。这些方法包含以各种形式动词:刚动词动词+名词动词+形容词+名词,有时名词动词+(以进一步澄清动词的意思)。命令可能是最常见的名称。

2] 查询:

connection.is_open() 
snake.is_dead() 
window.can_hide() 

这些是不那么常见。他们的形式是被动动词+形容词(这种形式肯定可以描述得更好,我不是英语母语的人)。基本上,在这里你可以查询一个对象的状态。

以下是类别,我不知道,因为我还没有真正见过很多这样的方法名(也可以是我的,虽然有限的经验):

3] 声明:

button.widget_selected(event) 
window.screen_changed(screen) 

在这里,您通知一个对象发生了一些事情,并期望它能够完成工作。该方法基本上是一个事件处理程序。这个形式通常是类似名词+通过时态动词。我不确定这个类别,因为你可以通过预先考虑一个动词例如将它转换成一个命令。 handlebutton.handle_widget_selected(event)调用该方法时似乎更自然。

4] 名词 - 名

snake.crash_animation() 
game.introduction() 

我真的不喜欢这些,因为我觉得应该名词数据保留。它们可以简单地转化为第一类。

所以我的问题是,如果你以某种方式同意这种分类,并且你是否考虑了第三类和第四类与OOP范例相关的名称好坏。

+0

它可能会被关闭我想我明白了为什么。我只是试图得到一些关于这个原因的反馈,我没有那种OOP经验。 – clime 2013-04-27 13:27:14

+1

如果你提到了一种特定的语言,你很可能已经在SO的职权范围内调整了这个问题,但我猜现在有点晚了。 – 2013-04-27 13:38:46

+1

这有可能会退化为准宗教讨论,所以在发生这种情况之前可能会被关闭。动词 - 名词似乎是行动方法的首选,尽管有时我用名词动词来控制排序,尽管英语有点尴尬。网络上有很多风格指南。 – 2013-04-27 13:39:41

我认为你正在寻找一个style guidecoding standard

例如

PEP-8(共同简称Python的风格指南)

Google JS styleguide

话虽如此,海事组织最好是在你的编码是一致的比在风格指南(棒混合到你开始什么与或重构一切)。有自己的计划是好的,但你宁愿花时间在生产力上。

+0

好吧,它描述了如果我应该使用camelCase或者下划线和类似的东西,对吧?你能指出具体的部分“如何制定方法名称”或类似的东西吗? – clime 2013-04-27 13:29:53

+1

@clime这一切都取决于你要使用的语言。 – 2013-04-27 13:31:13

+0

您应该突出显示这些链接的最佳部分。结果在2016年,Google Styleguide指出了一个错误,PEP-8将我列入了一个我不知道从哪里来的索引。 – gustavohenke 2016-05-31 15:09:13