Effective Java 讀書筆記: Item 50 - 考慮用更適合的型別替代 String

原本不覺得這則有什麼特別的, 翻 Head First - OOAD 後, 看到裡面第一個例子就是將一堆屬性的型別從 String 盡量換成 enum, 程式瞬間變清楚許多, 而且也可避免大小寫或拼錯字的問題, 字串比對有點囉唆, 而且 enum 的比對效率也比 String 快 (因為 enum 的每一元素都是 singlton, 可用 == 直接比對)。才想到之前也看過類似的小問題, 只是量不大, 只覺得程式並不清楚, 到沒有沒特別嚴重, 結果沒想到要去重構它們。

附上 Head First - OOAD 的例子, 看了比較有感覺。修改之前:

Guitar:
----------------------------
serialNumber: String
price: String
builder String
model: String
type: String
backWood: String
topWood: String

修改之後:

Guitar:
----------------------------
serialNumber: String
price: double
builder Builder
model: String
type: Type
backWood: Wood
topWood: Wood

上面的 Builder、Type、Wood 是 enum。這樣在提供搜尋吉它的介面時, 可以省掉一些前處理 (像是 toLower()、trim() ) 等操作。

留言

這個網誌中的熱門文章

virtualbox 使用 USB 裝置

如何 git merge 更改檔名的檔案

熟悉系統工具好處多多