Re: [資料] 神之物件 (God object, Blob AntiPattern)

看板OOAD作者 (綠)時間17年前 (2007/09/15 06:32), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串13/19 (看更多)
※ 引述《H45 (!H45)》之銘言: : ※ 引述《godfat (godfat 真常)》之銘言: : : 其實我還滿愛這樣寫的,但當然不可能產生 god object, : : 這種事能避免就盡量避免,不過有時候我覺得只是程度問題罷了。 : [舉例恕刪....老實說不太懂你要表達的意思....] : : 接下來就再由 track_panel 和 track_list 自己去辦事。 : : 主程式大概就分三段: : : 1. url 處理 : : 2. new XXXPlayer : : 3. new XXXPlayerView : : 寫成: : : // url 處理略過 : : new XXXPlayerView(new XXXPlayer(this, url)); : : 我是覺得這種寫法還滿簡明的。目前全程式約 600 行,7 個 class. : 只要 constructor 不處理「所有」的事情就 OK : 利用委派 (Oo aggregation) 的方式,把任務一個一個的交給實作低層方針的物件們 : 讓其他的物件完成較小的任務,組合起來完成整個高層物件的目標 : 是個合理的想法。 : 話說回來,身為一個 constructor 應該做「什麼」事情? : 雖然沒有一定的原則,但是我總覺得 constructor 應該只負責「建立一個物件的屬性」 : 而不應該負責「進行一個物件的行為」 : 不是嗎? 我覺得Constructor就是你想要某一物件一開始被建立時 就馬上擁有什麼樣的attribute或者擁有什麼樣的功能 把它寫在Construcor裡 而不需要用接下的程式碼一個一個執行 簡潔程式及強化功能 -- ~愛喝無糖綠茶的女生~ ~愛開懷大笑的女生~ ~容易受感動的女生~ Welcome to my blog: http://www.mygreenteablog.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.10.93.120

09/15 13:39, , 1F
當然沒錯,需求「固定」的時候是可以這麼做
09/15 13:39, 1F

09/16 00:39, , 2F
我不覺得一定每個CASE要設計一個"萬用"class...
09/16 00:39, 2F

09/16 00:41, , 3F
把有些預設的事情寫在default .ctor也不錯吧,其它再來
09/16 00:41, 3F

09/16 00:41, , 4F
設計需要default以外的ctor
09/16 00:41, 4F

09/29 01:43, , 5F
樓上 , 這個要看你設計的level , 舉例 如果是做SDK /API
09/29 01:43, 5F

09/29 01:43, , 6F
這個就很重要 , 如果是拋棄式或者改動幅度不大的,it's fine
09/29 01:43, 6F
文章代碼(AID): #16wmmIpV (OOAD)
討論串 (同標題文章)
文章代碼(AID): #16wmmIpV (OOAD)