繁体   English   中英

应该使用什么名称的方法来返回嵌套对象的数量?

[英]What name should have method which returns number of nested objects?

假设我们有Gallery和Image类。 一个图库中可以有很多图像。

Gallery应该有一些返回嵌套图像数量的方法。 我的建议:

int getImagesCount ();

int countImages ();

int imagesCount ();

我在不同的API中看到了这3条建议中的每条示例(当然还有另一个名词,甚至没有它,例如Collections API中的method size () )。

您想要什么,为什么? (我对countImages ()想法countImages ()是,此名称可以使用户认为此方法进行了一些复杂的计算。)

我的建议:

public interface Gallery {

    int getNumberOfImages();

    //...
}

我同意, countXX()以印象,调用此方法会触发某种计算。 所以我也不会在这里使用它。

由于同样的原因,我也会排除countImages ()

除此之外,如果代码Gallery中的命名约定或多或少地一致,则我建议遵循该约定。 在没有明确的项目约定的情况下,我个人倾向于使用size()

如果您正在考虑使用一种方法返回大小,而另一种方法返回第n个元素,那么我的建议通常是: 不要这样做! 使用collections API的强大功能! :创建一个返回List<Image> 这样,API的用户可以更轻松地执行诸如遍历图像的操作(使用增强的for循环而不是必须处理索引),对其进行排序,将其组合到其他集合中,...

确实很容易实现:

  • 如果图像在内部已经表示为列表,则可以将其返回(可选地用Collections.unmodifiableList包装)。
  • 即使您不将它们存储为列表,也可以通过重写size()get(int)来编写List<Image> ,就像编写一个小小的AbstractList子类一样简单,只需覆盖要实现的两个方法无论如何。

size()的问题在于,不一定要返回元素的数量(在这种情况下为图像)还是集合的字节/千字节/兆字节大小。 出于相同的原因,我倾向于首选getImageDimensions()而不是getImageSize() 在您的情况下,我喜欢countImages()因为它简洁明了,但是例如,如果有类似getImage(int)方法,它就不遵循命名约定。 因此,我将不得不使用int getImagesCount()或更好的方法,即int getNumberOfImages()int getNumImages()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM