如果你想在某個時候得到一個數組,其中選擇將是「更好」的消極或積極的數字:
getAllNumbers(initialArray, boolean positive) ....
或
getAllPositiveNumbers(initialArray){
爲每個標誌可能的值標誌或單獨的方法?
....
}
getAllNegativeNumbers(initialArray){
...
}
0
A
回答
1
我想使用getAllPositiveNumbers
和getAllNegativeNumbers
,因爲代碼更清晰可讀,但爲客戶提供一種方便的方法可能是合理的。
如果客戶端代碼必須在運行時選擇其中一種方法(由於用戶輸入)。然後,每個客戶端都必須做這樣的事情:
boolean selectPositiveNumber = .....; // obtained somehow through user input
int[] numbers = null;
if(positiveNumbers){
numbers = getAllPositiveNumbers(allNumbers);
} else {
numbers = getAllNegativeNumbers(allNumbers);
}
在這種情況下,簡便方法getAllNumbers(initialArray, boolean positive)
使得客戶端代碼更容易。
boolean selectPositiveNumber = .....; // obtained somehow through user input
int[] numbers = getAllNumbers(allNumbers, selectPositiveNumber);
如果客戶端代碼在「編譯時間」選擇其中一種方法。然後客戶不需要一種方便的方法,例如客戶端代碼可能會做這樣的事情:
public int positiveSum(int[] values){
int[] positiveNumbers = getPositiveNumbers(values);
int sum = 0;
// loop to calc the sum
return sum;
}
幸運的,你可以結合兩種:
因此,如果你希望有很多的客戶端代碼做一個if/else
不是提供一個方便的方法。
0
就個人而言,我會去getAllPositiveNumbers
。否則,你需要在getAllNumbers
中寫出一些公平的評論,以使前者顯而易見。
例
/**
* Returns numbers from an array.
* @positive boolean value indicating to get just positive values or not.
*
*/
public List<Integer> getAllNumbers(initialArray, boolean positive)
{
// Some code.
}
或者
public List<Integer> getAllPositiveNumbers(int[] numbers)
{
// Some code.
}
正如你所看到的,最後一個是很明顯它做什麼。
0
如果這是一個庫或東西,我建議使用兩者。該getAllPositiveNumbers和getAllNegativeNumbers方法可以調用getAllNumbers方法,像這樣:
public int[] getAllNumbers(int[] array, boolean positive) {
//...
}
public int[] getAllPositiveNumbers(int[] array) {
return getAllNumbers(array, true);
}
否則,使用你喜歡哪個。
相關問題
- 1. 印刷標誌枚舉爲獨立的標誌
- 2. 菜單下方的標誌
- 3. 擊:對每個標誌
- 4. Perl6可選功能標誌
- 5. MongoDB - 多個布爾標誌或包含值的單個列表?
- 6. 軟刪除 - 使用IsDeleted標誌或單獨的連接器表?
- 7. 哈希鍵作爲方法標誌
- 8. 爲標誌列
- 9. 限制標誌的可能組合
- 10. 單元測試不同的標誌值
- 11. 爲每個單獨的線程記錄日誌文件
- 12. 多個標誌
- 13. 更新標誌值
- 14. 的標誌和菜單
- 15. @標誌之前的javascript值
- 16. 標誌列的更新值
- 17. 繪圖中的標誌值?
- 18. 訪問同步方法中的標誌?
- 19. 清除Thread.interrupt()標誌的方法
- 20. 可能有兩個單獨的Log4j日誌文件?
- 21. 架構標記爲標誌
- 22. uint64標誌或uint32標誌[2]爲32位編譯器的函數參數?
- 23. ListView標誌的搜索功能 - 無法解析方法'getFilter()
- 24. $ jquery的標誌
- 25. 返回標誌值或BSON ObjectId
- 26. 的GlobalAlloc標誌爲Marshal.PtrToStructure
- 27. 標誌標記
- 28. 大會 - 標誌標誌和奇偶校驗標誌
- 29. PostSharp日誌智能標記不可用
- 30. 標誌列或外鍵?
定義「更好」。 –