作者JustinHere (良葛格)
看板java
標題Re: [問題] Class中的大括號
時間Thu Jun 26 13:54:36 2014
※ 引述《TonyQ (自立而後立人)》之銘言:
: 一般來說你應該把初始化一個變數成員的行為放在 constructor,
: 但還是有其他兩個方法可以應用,其中一個就是你提到的這個初始化 block。
: 它會把這個 {} 裡面的程式碼放進每個建構子裡面,
: 這樣就可以用來在多個建構子裡面共用程式碼。
: (但我個人是不會建議這麼做就是了。)
有時會在建立匿名類別時使用,作一些初始動作,例如…
Some some = new Some() {
{
setXXX(...);
setOOO(...);
initWhat();
doWho();
}
@Override
public void doOrz() {
....
}
};
之前看過,有個程式庫試著用 .java 作 Configuration 檔案,有個這種作法:
// 隨便亂打的
public class YourConfig extends Configuration {{
route("/some", to("/other"));
default("/orz");
config("what you want", with(something()));
...
you().may()
.want().to().config()
.with().fluent().api(); // XDXDXD
}}
--
良葛格學習筆記
http://openhome.cc
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.9.217.215
※ 文章網址: http://www.ptt.cc/bbs/java/M.1403762081.A.6F0.html
※ 編輯: JustinHere (101.9.217.215), 06/26/2014 13:56:55
※ 編輯: JustinHere (101.9.217.215), 06/26/2014 13:58:08
推 popcorny:在anonymous class中用就合理了!! 06/26 13:58
推 Deltaguita:學到了 謝謝! 06/26 14:41
推 NullLife:(筆記) 06/26 23:58
→ Killercat:這個作delegation/callback很常見 不過我個人實在對 06/27 17:03
→ Killercat:這種寫法非常感冒(汗)雖然這是某些framework, 如 06/27 17:03
→ Killercat:android的標準作法就是 06/27 17:03
→ Killercat:下面那個作法是Builder pattern, 其實通常會接個.create 06/27 17:04
→ Killercat:類型的method作為「真正產生動作」的結尾 06/27 17:04
→ Killercat:Builder設計也是一個不錯的梗 下次跟大家分享一下 06/27 17:05