命名创建具有新实例的列表的方法

时间:2014-01-10 08:12:43

标签: java methods naming-conventions naming method-names

有一种方法可以从某些参数创建新实例列表。我会这样称呼它:

List<NewType> createNewTypeInstances(OldType1 value1, OldType2 value2);

但我也经常看到它以这样的方式命名:

List<NewType> getNewTypeInstances(OldType1 value1, OldType2 value2);

我现在的问题是:每个创建(或更一般地说:返回)某些东西的方法都应该用前缀 get 命名吗?

3 个答案:

答案 0 :(得分:2)

没有。您应该选择最能描述方法功能的名称。使用get / set前缀是访问对象属性的公认约定,但此方法不是getter。

我个人会使用create,因为该方法创建了东西,而不是简单地获取它们。但我会删除“Instances”后缀,这会增加不必要的噪音。每个对象都是一个类的实例。根据我所知,我可能会将方法命名为createNewTypes()

尽管如此,在不了解您的软件的情况下,OldTypeNewType并不是真正的描述性名称。

答案 1 :(得分:1)

有吸引人的风格,并且误导性:

  • 实际上并不是“getters”(即不返回实例的字段)
  • 有副作用(对任何事情做出任何改变)

你的方法在两点都失败了。

调用它create...是一个更好的选择,并且通常用于工厂方法的前缀,您的方法与之紧密对齐。

答案 2 :(得分:0)

我认为这个方法应该命名为createNewTypeInstances,因为它正在创造一些东西。 get的方法是按惯例getter(访问器方法),并且是返回现有值的工作,而不是创建新值。