作者PsMonkey (痞子軍團團長)
看板java
標題Re: [問題] 在物件被註銷時自動執行某些事
時間Fri Jun 15 12:53:19 2012
※ 引述《LaPass (LaPass)》之銘言:
: 感覺起來還不錯,還挺簡潔的。
: 問題是,東西一多的話可能會變成這樣
: myDBHandler.open();
: ResultSet rs = myDBHandler("SELECT * FROM USER");
^^^^^^^^^^^
要嘛妳們那邊真 ____ 神奇到會沒事把 method 跟 variable 取一樣名字
不然,麻煩請給像樣一點的 code
: while(rs.next())
: {
: our.println("名稱:"+rs.getString("Name")+"的統計資料");
: //略
: our.println("文章列表");
: ResultSet subrs = myDBHandler("SELECT * FROM Post "+
: " WHERE Pid = "+rs.getString("PostGroup"));
: while(subrs.next())
: {
: //中略
: }
: subrs.close();
: subrs = myDBHandler("SELECT * FROM Mail "+
: " WHERE Mid = "+rs.getString("PostGroup"));
: our.println("郵件列表");
: while(subrs.next())
: {
: //中略
: }
: rs.close();
: //下略
: }
: rs.close();
: myDBHandler.close();
: 中間的東西可能會多達幾百行甚至一千多行.....
: 很多人喜歡這樣寫,但是這種程式風格會讓我覺得很痛苦
WT_... 什麼年代了
: 我對程式的掌控能力不高,只有一個半螢幕而已
: 一個function中的東西,只要超過那樣的分量我就很容易亂掉
: 通常我自己寫給自己用的元件,會把麻煩事在底層都把它處理掉
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: 他們覺得程式應該是一行行執行下去,而不是東跳西跳.....
WT_... 什麼年代了
: List<User> getUser()
: {
: List<User> listUser=new ArrayList<User>();
: myDBHandler.open();
: ResultSet rs = myDBHandler("SELECT * FROM USER");
: while(rs.next())
: {
: listUser.add(/*中略*/);
: }
: rs.close();
: myDBHandler.close();
: return listUser;
: }
: 這個雖然不會讓使用資料庫的元件出現lifecycle
: 但是每次取得資料時都會開、關一次連線
: 怎麼想都覺得,容易會造成短時間大量開、關連線的問題啊
__! 接下來就會有人告訴你用 connection pool 的 library
然後你就會說:「討厭~那不是人家要的唷~啾咪~」
說真的,我雖然懶得懂那些底層的東西
但是我怎麼看怎麼覺得
這世界都已經在上太空了,你還在跟人家講怎麼殺豬公
我必須先說一件事
要探究原理、要翻案既有作法,這絕對不會反對
甚至,如果版面上都是這種文章
我大概會痛哭流涕馬上去辭版主,因為真 ﹍﹍ 的不夠格
回到主題(謎之聲:有這東西?)
骯髒事就是那麼多,泛稱「骯髒事不滅定律」
就是要開 conn、撈資料、關 conn
總總 lib 也好、framework 也好
只是讓骯髒事排的比較整齊好看 or 讓你看不到
myDBHandler(SQL_STATEMENT);
這個 method 為甚麼不能裡頭包 open(), close()?
→因為會一直開開關關
→但是因為程式碼比較好看
→所以設計 connection pool,怎麼開關都不怕 [小誤]
重點是,從這個 thread 開頭到現在
你提出來的問題都不是昨天、上個月、還是去年才冒出來的問題
而是少說也有三年五年的時間了
(Hibernate 都出來多久了)
這麼久的時間中,你要說沒有人去質疑總總 lib、framework 的解法?
怎麼可能... 很多人每天在面對這些東西製造出來的麻煩
(之前就有高手在這裡講 Hibernate 炸出來的記憶體問題)
當然不是說現有作法一定對、你不能懷疑你想懷疑的東西
但是你要懷疑、你要創新之前
麻煩你去了解一下現在的人是怎麼上太空的
而不是一直拿刀殺豬公拜嫦娥,希望嫦娥哪天顯靈帶你飛上天
然後說靠火箭上太空不是我的 style
(那也不是不行,如果你是寫小說的,那我會幫你按個讚)
--
錢鍾書:
說出來的話
http://www.psmonkey.org
比不上不說出來的話
Java 版 cookcomic 版
只影射著說不出來的話
and more......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.202.140
推 LaPass:對不起..... 06/15 12:56
→ bleed1979:L原po不必道歉,這種事我至少在這個版看過兩次了。 06/16 20:10
→ bleed1979:另建議L原po讀Effective Java,有針對finalize的條款。 06/16 20:12