[問題] 自訂型別的習慣

看板java作者 (小陳)時間12年前 (2012/06/18 07:36), 編輯推噓11(1107)
留言18則, 7人參與, 最新討論串1/2 (看更多)
各位會常在較複雜的資料型別上定義一個新的資料型別嗎? 例如,從資料庫讀取每一筆資料, 都每一筆資料的屬性和值,都用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

06/18 07:53, , 1F
完全沒必要,除非真的有蓋寫method或實作其它介面
06/18 07:53, 1F

06/18 07:56, , 2F
若是想實作可抽換,那反該是Tuple extends Map而非HashMap
06/18 07:56, 2F

06/18 08:18, , 3F
1沒必要,嫌字長按alt+/就會跳出選項讓人選了
06/18 08:18, 3F

06/18 08:21, , 4F
Tuple Tuple=new Tuple();這樣寫不會出錯,但人會亂掉。
06/18 08:21, 4F

06/18 09:35, , 5F
我倒是覺得多建一個 Tuple class 沒啥不好.....
06/18 09:35, 5F

06/18 09:35, , 6F
當然,好處也沒有非常顯著就是了 XDXD
06/18 09:35, 6F

06/18 09:59, , 7F
改成 has a 應該會更好... 雖然還是沒特別必要 XDXD
06/18 09:59, 7F

06/18 11:23, , 8F
在java7可以縮短一點點 XD
06/18 11:23, 8F

06/18 13:16, , 9F
PsMonkey 你的意思是用delegate的方式嗎??
06/18 13:16, 9F

06/18 13:19, , 10F
java 有 delegate嗎? 沒聽說過說.....
06/18 13:19, 10F

06/18 13:23, , 11F
我是指概念啦 不過剛看了一下 用delegate這個名詞也不恰當
06/18 13:23, 11F

06/18 13:27, , 12F
btw, 用Tuple當變數名不太好吧,改用tuple比較適當。
06/18 13:27, 12F

06/18 14:22, , 13F
我只知道 is-a 跟 has-a 的差別,太難的我不會 [遮臉]
06/18 14:22, 13F

06/18 14:29, , 14F
話說... java se8好像就會有lambda、delegate之類的東西了
06/18 14:29, 14F

06/18 14:36, , 15F
delegate: SCWCD考試題目之一,還有原PO的作法視情況~
06/18 14:36, 15F

06/18 14:38, , 16F
明知道不需要而弄就有脫褲子放屁知嫌..
06/18 14:38, 16F

06/18 14:47, , 17F
原來是Business Delegate 我以為是C#關鍵字delegate之類的
06/18 14:47, 17F

06/18 22:01, , 18F
跟delegate沒有關係,這純粹只是物件之間的聚合關係
06/18 22:01, 18F
文章代碼(AID): #1Ftce0eB (java)
文章代碼(AID): #1Ftce0eB (java)