簡體   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