OOP:方法名称分类
最近我一直在使用OOP中的方法名称,我决定对它进行排序。为此,我试图从自然语言的角度对方法名称进行分类。到目前为止,我已经想通了这些类别:OOP:方法名称分类
1] 命令:
elem_list.append('x')
bank_account.deposit(50)
game.get_score()
append
,deposit
,get_score
的命令在这里。你要求对象做某件事情(或者要求翻译者对他们做些什么 - 取决于观点)。这些方法包含以各种形式动词:刚动词,动词+名词,动词+形容词+名词,有时名词动词+(以进一步澄清动词的意思)。命令可能是最常见的名称。
2] 查询:
connection.is_open()
snake.is_dead()
window.can_hide()
这些是不那么常见。他们的形式是被动动词+形容词(这种形式肯定可以描述得更好,我不是英语母语的人)。基本上,在这里你可以查询一个对象的状态。
以下是类别,我不知道,因为我还没有真正见过很多这样的方法名(也可以是我的,虽然有限的经验):
3] 声明:
button.widget_selected(event)
window.screen_changed(screen)
在这里,您通知一个对象发生了一些事情,并期望它能够完成工作。该方法基本上是一个事件处理程序。这个形式通常是类似名词+通过时态动词。我不确定这个类别,因为你可以通过预先考虑一个动词例如将它转换成一个命令。 handle
:button.handle_widget_selected(event)
调用该方法时似乎更自然。
4] 名词 - 名
snake.crash_animation()
game.introduction()
我真的不喜欢这些,因为我觉得应该名词数据保留。它们可以简单地转化为第一类。
所以我的问题是,如果你以某种方式同意这种分类,并且你是否考虑了第三类和第四类与OOP范例相关的名称好坏。
我认为你正在寻找一个style guide
或coding standard
。
例如
PEP-8(共同简称Python的风格指南)
话虽如此,海事组织最好是在你的编码是一致的比在风格指南(棒混合到你开始什么与或重构一切)。有自己的计划是好的,但你宁愿花时间在生产力上。
好吧,它描述了如果我应该使用camelCase或者下划线和类似的东西,对吧?你能指出具体的部分“如何制定方法名称”或类似的东西吗? – clime 2013-04-27 13:29:53
@clime这一切都取决于你要使用的语言。 – 2013-04-27 13:31:13
您应该突出显示这些链接的最佳部分。结果在2016年,Google Styleguide指出了一个错误,PEP-8将我列入了一个我不知道从哪里来的索引。 – gustavohenke 2016-05-31 15:09:13
它可能会被关闭我想我明白了为什么。我只是试图得到一些关于这个原因的反馈,我没有那种OOP经验。 – clime 2013-04-27 13:27:14
如果你提到了一种特定的语言,你很可能已经在SO的职权范围内调整了这个问题,但我猜现在有点晚了。 – 2013-04-27 13:38:46
这有可能会退化为准宗教讨论,所以在发生这种情况之前可能会被关闭。动词 - 名词似乎是行动方法的首选,尽管有时我用名词动词来控制排序,尽管英语有点尴尬。网络上有很多风格指南。 – 2013-04-27 13:39:41