这个问题与约定有关。
我们说我有一个对象Basket
,可以在一些私有财产(Basket._items
)中存储各种项目。现在,我希望有几种方法可以添加,删除和获取项目。
每种方法都可以 单个项目或项目列表作为参数,或者不带参数,如果是删除和获取,可以删除或返回所有项目。
我该如何命名我的方法?
addItem
或addItems
removeItem
或removeItems
getItem
或getItems
(他们不必所有必须是相同的形式;例如,也许只有最后一个应该是复数形式。)
编辑:添加和获取这样的通用名称,因为从语义上来说我没有添加或获取Baskets ;该对象也用于保存其他东西。我考虑使用Basket.items.add()
之类的内容,但它不是最佳的,因为实际的项目对象也必须存储,Basket.items._items
或Basket.items._contents
看起来很糟糕。我仍然希望在原来的问题上得到更多答案。
答案 0 :(得分:1)
第一条准则是使用与您已为相关项目编写的代码相匹配的约定。
第二条准则是选择最符合方法的名称,以便最常用。如果默认/常用/无参数用于检索单个项目,则使用单数名称而不是复数。
第三条准则是与您在第三方库中使用的其他代码约定相匹配。例如,如果您知道使用您的库的人正在使用jQuery,那么他们的约定可能很适合。
由于Javascript是一种动态语言,因此在方法签名中通常是“懒惰”。所以你可以使用:
Basket.addItem(n); // add a single item
Basket.addItem([n, m]); // add multiple items
Basket.getItem(); // retrieve a single item
Basket.getItem(5); // retrieve an array of up to 5 items
Basket.removeItem(); // remove a single item
Basket.removeItem(2); // remove up to two items
Basket.emptyItems(); // remove them all
当然,除非您已使用add()
,get()
,remove()
。
答案 1 :(得分:0)
如果参数是一个列表(数组),那么很明显你要添加几个元素。如果参数是您要添加的元素的单个实例,则同样的想法适用。
add( Array elements):
foreach element e
_items[lastindex] = e
add( Element element):
_item[lastindex]= e
这是我的意见。作为参考,你有:
Java List interface
和
Java coding conventions
不同的语言有不同的惯例,但这里列出的惯例对其他语言来说通常也是合理的(尽管它并不能完全回答你的问题)。