我談論的Java相同的功能,但這個概念也適用於其他語言 -命名方法具有不同的返回類型,但
我們有相同的類中的兩個方法,將具有相同的基本功能,但提供不同的返回類型。這兩種方法都可以爲你提供所有的東西,但是有一個方法可以獲得一個可以提供所有東西的迭代器,並且可以得到一個包含所有東西的集合。
我們知道你不能做到這一點(因爲它不會編譯):
Iterable getThings()
Collection getThings()
因此,沒有人有關於如何命名方法的想法?這似乎是一個簡單的修復說:
Iterable getIterableOfThings
Collection getCollectionOfThings
但是,這顯然有些冗長,也許不是最好的解決方案。我所問的問題是否意味着我們的組織/編碼方法在某種程度上不符合標準,或者這是一個有效的問題?
是否有其他人處理過這種情況?
「Iterable iterator()'而不是'Iterable getThings()'' – Braj
['Iterable'是'Collection'的超級接口。](http://docs.oracle.com/javase/7/docs/ api/java/util/Collection.html)爲什麼你總是需要兩個getter,而你總是可以彼此投一個? – blgt
不應該擔心冗長,因爲我們有IDE,可以爲我們節省大量打字工作。您可能想查看[Bob Martin的_Clean Code ..._](http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/ref=sr_1_1?ie=UTF8&qid=1403192998&sr = 8-1&關鍵字=鮑勃+馬丁+乾淨+代碼)。話雖如此,我仍然不知道如何命名。 – ajb