2

クラス Gallery と Image があるとします。1 つのギャラリーに多数の画像を含めることができます。

ギャラリーには、ネストされた画像の数を返すメソッドが必要です。私の提案:

int getImagesCount ();

int countImages ();

int imagesCount ();

size ()これら 3 つの提案のそれぞれの例をさまざまな API で見ました (もちろん、コレクション APIのメソッドのように、別の名詞を使用したり、使用しなくてもかまいません)。

あなたは何を好みますか、そしてその理由は何ですか? (私の反対の考えの 1 つはcountImages ()、この名前が、このメソッドが複雑な計算を行うとユーザーに思わせる可能性があるということです。)

4

4 に答える 4

2

サイズを返す 1 つのメソッドと、n 番目の要素を返す別のメソッドを使用することを考えている場合、私の一般的な推奨事項は次のとおりです。コレクション API の機能を使用してください。: を返すメソッドを作成しますList<Image>。そうすれば、API のユーザーは、画像の反復処理 (インデックスを操作する代わりに強化された for ループを使用)、並べ替え、他のコレクションでの結合などをより簡単に行うことができます...

実装は非常に簡単です。

  • 画像が内部的にすでにリストとして表現されている場合は、それを返すことができます (オプションで Collections.unmodifiableList でラップされます)。
  • それらをリストとして保存しなくても、とにかく実装しようとしていた 2 つのメソッドとをオーバーライドするだけList<Image>で、 の小さなサブクラスを作成するのと同じくらい簡単にそれらを公開できます。AbstractListsize()get(int)
于 2010-02-25T15:00:57.197 に答える
2

私のおすすめ:

public interface Gallery {

    int getNumberOfImages();

    //...
}

countXX()このメソッドを呼び出すと、何らかの計算がトリガーされるという印象につながることに同意します。なのでここでも使いません。

于 2010-02-25T14:47:05.497 に答える
2

countImages ()同じ理由で、私も除外します。

Galleryそれ以外に、所属するコードベースに多かれ少なかれ一貫した命名規則がある場合は、それに従うことをお勧めします。明確なプロジェクト規則がない場合、私は個人的にsize().

于 2010-02-25T14:47:19.627 に答える
0

問題size()は、要素の数 (この場合は画像) を返すのか、コレクションのサイズ (バイト/キロバイト/メガバイト) を返すのかが必ずしも明確ではないことです。同じ理由で、私は を好む傾向がありgetImageDimensions()ますgetImageSize()。あなたの場合は、countImages()明快で簡潔なので気に入っていますが、たとえばgetImage(int). したがって、私はそれ以上に行かなければなりませんint getImagesCount()int getNumberOfImages()またはint getNumImages()

于 2010-02-25T14:49:24.523 に答える