看板 java 關於我們 聯絡資訊
各位會常在較複雜的資料型別上定義一個新的資料型別嗎? 例如,從資料庫讀取每一筆資料, 都每一筆資料的屬性和值,都用HashMap的資料結構 但是每次寫 HashMap<String,String> myTuple=new HashMap<String,String> 感覺有點冗長 所以定義了一個資料結構 class Tuple extends HashMap<String,String>{ } 如果要存取整個資料庫,就在定義一個資料結構 class DB extends ArrayList<Tuple>{ } 如果要用的時候,就寫成 DB myDB=new DB(); Tuple myTyple=new Tuple(); myDB.add(myTuple); 這樣子寫有問題嗎? 另外還有,如果物件名稱和類別名稱用同一個相同的名稱, 是否會產生問題? 也就是 Tuple Tuple=new Tuple(); 這樣子寫法編譯器也會過,但是不知道會不會日後執行有錯誤? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.157.8
bitlife:完全沒必要,除非真的有蓋寫method或實作其它介面 06/18 07:53
bitlife:若是想實作可抽換,那反該是Tuple extends Map而非HashMap 06/18 07:56
LaPass:1沒必要,嫌字長按alt+/就會跳出選項讓人選了 06/18 08:18
LaPass:Tuple Tuple=new Tuple();這樣寫不會出錯,但人會亂掉。 06/18 08:21
PsMonkey:我倒是覺得多建一個 Tuple class 沒啥不好..... 06/18 09:35
PsMonkey:當然,好處也沒有非常顯著就是了 XDXD 06/18 09:35
PsMonkey:改成 has a 應該會更好... 雖然還是沒特別必要 XDXD 06/18 09:59
AI3767:在java7可以縮短一點點 XD 06/18 11:23
kewang:PsMonkey 你的意思是用delegate的方式嗎?? 06/18 13:16
LaPass:java 有 delegate嗎? 沒聽說過說..... 06/18 13:19
kewang:我是指概念啦 不過剛看了一下 用delegate這個名詞也不恰當 06/18 13:23
kewang:btw, 用Tuple當變數名不太好吧,改用tuple比較適當。 06/18 13:27
PsMonkey:我只知道 is-a 跟 has-a 的差別,太難的我不會 [遮臉] 06/18 14:22
LaPass:話說... java se8好像就會有lambda、delegate之類的東西了 06/18 14:29
jej:delegate: SCWCD考試題目之一,還有原PO的作法視情況~ 06/18 14:36
jej:明知道不需要而弄就有脫褲子放屁知嫌.. 06/18 14:38
LaPass:原來是Business Delegate 我以為是C#關鍵字delegate之類的 06/18 14:47
kimkao:跟delegate沒有關係,這純粹只是物件之間的聚合關係 06/18 22:01