0

この質問は規約に関するものです。

Basketいくつかの私有財産 ( ) にさまざまなアイテムを格納するオブジェクトがあるとしますBasket._items。ここで、アイテムを追加削除、および取得するためのメソッドがいくつか必要です。

各メソッドは、引数として1 つのアイテムまたはアイテムのリストのいずれか を取ることができます。または、引数なしで削除および取得する場合は、すべてのアイテムを削除または返すことができます。

メソッドにどのように名前を付ける必要がありますか?

addItemまたはaddItems
removeItemまたはremoveItems
getItemまたはgetItems

(すべてが同じ形である必要はありません。たとえば、最後の 1 つだけが複数形であるべきです。)


編集: addgetのような一般的な名前は飛ばない。また、オブジェクトは他のものを保持するためにも使用されます。のようなものを使用することを検討したいと思いBasket.items.add()ますが、実際のアイテム オブジェクトも格納する必要があるBasket.items._itemsか、Basket.items._contents見栄えが悪いため、最適ではありません。元の質問についてさらに回答を得たいと思います。

4

2 に答える 2

1

最初のガイドラインは、問題のプロジェクト用に既に記述したコードに一致する規則を使用することです。

2 番目のガイドラインは、メソッドの最も一般的な用途に対して最も直感的に理解できる名前を選択することです。デフォルト/共通/パラメータなしの使用が単一のアイテムの取得である場合は、複数形ではなく単数形の名前を使用してください。

3 つ目のガイドラインは、サードパーティ ライブラリで既に使用している他のコード規則に一致させることです。たとえば、あなたのライブラリを使用している人々が 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()

于 2012-10-04T00:02:51.513 に答える
0

引数がリスト (配列) の場合、複数の要素を追加していることは明らかです。引数が、追加する要素の単一のインスタンスである場合、同じ考え方が適用されます。

add( Array elements):
    foreach element e
        _items[lastindex] = e

add( Element element):
    _item[lastindex]= e

それが私の意見です。参考までに、次のものがあります。

Java List インターフェース
Java コーディング規約

言語ごとに異なる規則がありますが、ここで概説する規則は一般に他の言語でも問題ありません (ただし、質問の答えにはなりません)。

于 2012-10-04T00:18:27.187 に答える