我正在寫一個構成Java類的公共接口的一部分的方法。它廣泛地允許調用者指定要分配給多個數據庫實體的值 - 因此它們必須提供實體本身的ID以及要分配給它們的值。更好地使用一個列表對,或兩個列表?
我在執行這個作爲List<Pair<Integer, Integer>>
或兩個List<Integer>
參數之間搖擺不定。這兩個顯然工作,都不會導致我的方法中的任何實施或效率問題。在任何情況下基本上都是相同的信息(一個2xn數組),只是條紋不同。
因此,我想就您認爲哪個更好,以及爲什麼會提出一些意見。
優點我看到迄今對的列表:
- 更準確地反映(如不匹配列表的長度)
這對清單的優點:
- 不依賴於否正JDK類(簡單
Pair
是把握作爲一個概念) - 不需要任何輔助對象的建設只是攜帶
- 來電者更可能有單獨列出的參數反正數據,因此他們不需要在調用方法前重新對齊數據
這兩種情況具有相同的類型安全性,以及相同的參數不匹配的可能性(例如,當它應該是另一種方式時,首先輸入值,第二個輸入ID)。後一個問題可以通過在Integer
周圍創建一個簡單的包裝來避免,稱爲PrimaryKey
,它有其自己的優點和缺點,並且與此問題正交,因爲在兩種情況下都可以使用它。
但是,有一箇中間地帶可以成爲第三個選項 - 一個普通的容器類,它具有objectId和value的整數字段。這不會使編譯器的幫助通過鍵入來確保對象是正確的,但它確實在作業中提供了額外的安全層。儘管如此,我不認爲我會這樣做,因爲我不喜歡這樣的一個小班級污染公共接口的想法。
關於面向對象和重構選項的所有優點 - 謝謝。 – 2009-09-22 10:04:37
作爲額外的好處 - 如果你有成對的成員列表,你可以根據需要輕鬆製作出三元組列表。要求改變,你知道。 – 2009-09-22 13:51:38
這就是爲什麼我主張不明確使用Pair對象:-) – 2009-09-22 15:52:20