Re: [資料] 神之物件 (God object, Blob AntiPattern)
※ 引述《H45 (!H45)》之銘言:
: [舉例恕刪....老實說不太懂你要表達的意思....]
只是想表達自己喜歡這種用法而已 :3
: 話說回來,身為一個 constructor 應該做「什麼」事情?
: 雖然沒有一定的原則,但是我總覺得 constructor 應該只負責「建立一個物件的屬性」
: 而不應該負責「進行一個物件的行為」
: 不是嗎?
我覺得這要看狀況,例如音效,是直接讀取時就撥放好呢,還是分開?
var sound = new Sound("ouch.tta"); // 順便推廣 The True Audio XD
sound.start();
這個作法很合理且直覺,但是如果在你的程式裡,只有讀取時需要撥放,
而會使用音效的地方又非常地多:
var sound_oops = new Sound("oops.tta");
sound_oops.start();
var sound_orz = new Sound("orz.tta");
sound_orz.start();
這樣多起來是會打到很煩的。當然,以上是假設上下兩段在不同地方,
無法使用迴圈呼叫。當然,仍然可以向其他容器註冊,再同時撥放﹍
但這又更麻煩了,也造成太多不必要的複雜度。
這種時候就乾脆讓 sound init 時就順便撥放。
這是假設是在寫 app 的情況下,如果是 lib 或 framework,
因為不能假設 client 的 domain 需要什麼,就不能任意將職責混合。
如果 client 有需要用混合的職責(可能這個 domain 只會有這種職責),
再自己寫 wrapper 把上述兩個職責合併即可。
如果未來有需要勒?再改回去啊 XD
XP 不是這樣做嗎? :p 不要做多餘的假設。
--
生死去来、棚頭傀儡、一線断時、落落磊磊
《花鏡》-世阿弥
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.218.90.242
推
08/06 14:31, , 1F
08/06 14:31, 1F
推
08/06 15:29, , 2F
08/06 15:29, 2F
→
08/06 15:30, , 3F
08/06 15:30, 3F
討論串 (同標題文章)
OOAD 近期熱門文章
PTT數位生活區 即時熱門文章