0

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

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

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

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

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

4

3 回答 3

2

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

我个人会使用 create,因为该方法会创建事物,而不是简单地获取它们。但我会放弃“Instances”后缀,这会增加不必要的噪音。每个对象都是类的一个实例。鉴于我所知道的,我可能会命名该方法createNewTypes()

也就是说,在对您的软件一无所知的情况下,OldType并不是NewType真正的描述性名称。

于 2014-01-10T08:18:13.807 回答
1

拥有以下内容的吸气剂是一种糟糕的风格和误导性:

  • 实际上不是“getter”(即不返回实例的字段)
  • 有副作用(对任何事情进行任何更改)

您的方法在这两点上都失败了。

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

于 2014-01-10T08:26:29.353 回答
0

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

于 2014-01-10T08:18:28.070 回答