作者dream1124 (全新開始)
看板java
標題[問題] Java Intropection的代價是否很貴?
時間Wed Jan 22 20:48:12 2014
會問這個問題,是因為好像曾經聽過這類說法
再加上最近看過 apache BeanUtils 的原始碼以後,
發覺原來就算只是物件的屬性蓋來蓋去也可以這麼複雜....
既是查找,然後定義再比對,最後還要快取
密密麻麻程式碼讓我不知如何下手... 其實我想解決的問題不複雜啊~ Orz
現在很流行讓屬性的 setter 有回傳值,然後型態設定為物件自己,
接著理所當然在設定完屬性後回傳自己,方便使用者連續呼叫 setter 設定屬性。
只是公司多年長期維護下來的案子已經很舊了
裡面依賴的 struts1 , apache BeanUtils 2.1, 都不覺得這種 setter 是合理的,
讓我想把物件的 setter 回傳自己的構想很難實行....
因此有自行實現 BeanUtils 工具的想法
只是看到 BeanUtils 的原碼令我有些卻步,
想請問有什麼方法可以解決像這樣的需求呢?
不管是開發新工具還是改舊的工具,請問大家會怎麼做呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 36.230.164.144
2F:→ qrtt1:看其他專案的 api 設計同時提供這二種 style,反正 setter 01/22 21:04
3F:→ qrtt1:用 ide 去 generate 很快啊。只是,我們真的需那麼多 setter 01/22 21:05
4F:→ qrtt1:嗎?以前小時候不懂事,都勾全選把所有東西 gen 出來 >"< 01/22 21:06
Setter 很容易產生, 只可惜後續在不同 bean 之間傳值不是很方便
偏偏現在專案有提供的工具只接受 void setXXX 這種寫法
5F:→ qrtt1:所以,你可以同時提供二種 style 啊xd 01/22 21:41
6F:→ qrtt1:雖然我不覺得是個好建議就是了(不過 aws sdk 是這麼弄的) 01/22 21:42
在有些比較舊的 BeanUtils 定義中, 大概會覺得這不算是正常 Java Bean的屬性吧~
7F:推 NewSpec:歡迎使用Grails~ XDDDDDD 01/22 22:55
公司開發很多年, 天天投入營運的專案了,
依賴的工具庫和框架某方面來說也依賴得很深, 成為系統一部分, 不是說改就能改的
※ 編輯: dream1124 來自: 36.230.164.144 (01/22 23:46)
8F:→ qrtt1:腦筋要轉一下啊,不要用 setter naming 就好了啊。 01/23 08:24