1

最近我一直在为 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)

在这里,您通知一个对象发生了某些事情并期望它完成它的工作。该方法基本上是一个事件处理程序。形式通常类似于名词+传递时态动词。我不确定这个类别,因为您可以通过在前面加上动词 eg handle:将其转换为命令,button.handle_widget_selected(event)这在调用该方法时似乎更自然。

4]名词名称

snake.crash_animation()
game.introduction()

我不太喜欢这些,因为我认为名词应该保留给数据。并且可以简单地转化为第一类。

所以我的问题是你是否同意这种分类,以及你是否认为第三和第四类中的名称在 OOP 范式方面是好还是坏。

4

1 回答 1

2

我认为您正在寻找style guideor coding standard

例如

PEP-8(常见的 Python 风格指南)

谷歌 JS 风格指南

话虽如此,我认为在整个编码过程中保持一致比在样式指南中混合更好(坚持你开始的内容或重构所有内容)。有自己的计划很好,但你宁愿把时间花在生产力上。

于 2013-04-27T13:25:48.877 回答