“getSomething()”是一个糟糕的方法命名模式吗?

时间:2011-05-30 10:25:53

标签: oop coding-style naming-conventions

方法应该告诉对象要做什么,例如:

circle.paint()

但如果我告诉对象getSomething(),我会告诉对象获取“某事”(从任何地方)和返回“某事”,get方法的典型用法是什么(getName()将返回“name”)。

我认为命名方法returnSomething()更为正确。

get(通常使用的)是一个错误的命名模式吗?

3 个答案:

答案 0 :(得分:1)

约定可能会因您使用的语言而异,在php中(不支持getter / setter方法)以下是很常见的:

$myObject=>setSomething($value) - 将$ myObject的内部变量设置为$ something

$myObject=>getSomething() - 返回$ myObject的内部变量,表示'something'

这在C#等语言中不太常见,它支持getter / setter方法,您可能会执行以下操作:

public object Something {
  get { return _something; }
  set {  _something = value; }
}

然后您可以使用点语法访问私有变量:

myObject.Something="something";
string value=myObject.Something;

答案 1 :(得分:1)

我个人不使用Get前缀。

对于“指标”,我只使用检索某些内容的方法Is 例如。 payment.IsOverdue()

至于setter方法 - 那些不应该存在。
对象状态应该通过调用行为自己定义。

Get没有必要,因为当我们要求某些东西时,应该使用名词进行命名。

答案 2 :(得分:0)

Deamon,首先我认为这件事有点依赖于语言。其次,我已经为你提供了Method Naming Guidelines

  

以下是例子   正确命名的方法。

     

的removeAll()

     

GetCharArray()

     

调用()

我还可以说,在我工作的公司中,我们总是使用GetSomething()GetYourAcceptRateHigher()之类的名称作为我们的方法。