有一种方法可以从一些参数创建一个新实例列表。我会这样称呼它:
List<NewType> createNewTypeInstances(OldType1 value1, OldType2 value2);
但我也经常看到它以这样的方式命名:
List<NewType> getNewTypeInstances(OldType1 value1, OldType2 value2);
我现在的问题是:每个创建(或更一般地说:返回)某些东西的方法是否应该以前缀get命名?
有一种方法可以从一些参数创建一个新实例列表。我会这样称呼它:
List<NewType> createNewTypeInstances(OldType1 value1, OldType2 value2);
但我也经常看到它以这样的方式命名:
List<NewType> getNewTypeInstances(OldType1 value1, OldType2 value2);
我现在的问题是:每个创建(或更一般地说:返回)某些东西的方法是否应该以前缀get命名?
不,您应该选择最能描述该方法作用的名称。使用 get/set 前缀是访问对象属性的公认约定,但此方法不是 getter。
我个人会使用 create,因为该方法会创建事物,而不是简单地获取它们。但我会放弃“Instances”后缀,这会增加不必要的噪音。每个对象都是类的一个实例。鉴于我所知道的,我可能会命名该方法createNewTypes()
。
也就是说,在对您的软件一无所知的情况下,OldType
并不是NewType
真正的描述性名称。
拥有以下内容的吸气剂是一种糟糕的风格和误导性:
您的方法在这两点上都失败了。
调用它create...
是一个更好的选择,并且是工厂方法经常使用的前缀,您的方法与之紧密对齐。
我认为这个方法应该命名为createNewTypeInstances
,因为它正在创造一些东西。按照惯例,方法get
是 getter(访问器方法),是返回现有值的工作,而不是创建新值。