假设我们有Gallery和Image类。一个图库中可以有许多图像。
图库应该有一些方法可以返回嵌套图像的数量。我的建议:
int getImagesCount ();
int countImages ();
int imagesCount ();
我在不同的API中看到了这三个建议中的每一个的示例(当然还有另一个名词,甚至没有它,就像Collections API中的方法size ()
一样)。
您更喜欢什么?为什么? (我对countImages ()
的一个想法是,这个名称可以让用户认为这个方法做了一些复杂的计算。)
答案 0 :(得分:2)
我的建议:
public interface Gallery {
int getNumberOfImages();
//...
}
我同意,countXX()
会给人留下这样的印象,即调用此方法会触发某种计算。所以我也不会在这里使用它。
答案 1 :(得分:2)
出于同样的原因,我也会排除countImages ()
。
除此之外,如果Gallery
所属的代码库中存在或多或少一致的命名约定,我建议遵守它。如果没有明确的项目公约,我个人会倾向于size()
。
答案 2 :(得分:2)
如果您正在考虑使用一个返回大小的方法,而另一个返回第n个元素的方法,我的建议一般:不要这样做!使用集合API的强大功能!:创建一个返回List<Image>
的方法。
这样,API的用户可以更轻松地执行诸如迭代图像(使用增强的for循环而不必使用索引),对它们进行排序,将它们组合到其他集合中等事情... ...
实施起来非常简单:
List<Image>
就像编写AbstractList
的小子类一样简单,只需覆盖size()
和{{1}无论如何,你要实现的两种方法。答案 3 :(得分:0)
size()
的问题在于,您是否返回元素的数量(本例中的图像)或集合的大小(以字节/千字节/兆字节为单位)并不一定清楚。出于同样的原因,我倾向于选择getImageDimensions()
到getImageSize()
。在您的情况下,我喜欢countImages()
,因为它简洁明了,但如果有getImage(int)
之类的方法,则不遵循命名约定。因此,我必须选择int getImagesCount()
或更好,int getNumberOfImages()
或int getNumImages()