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

看板OOAD作者 (!H45)時間17年前 (2007/08/04 01:42), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/19 (看更多)
※ 引述《godfat (godfat 真常)》之銘言: : ※ 引述《H45 (!H45)》之銘言: : : 在 Java 中,常常看見一個範例程式的主函式是長這樣: : : public static void main (String[] args) { : : new MyProgram(); : : } : : 這樣還不打緊,轉到 MyProgram.java 去看 : : 哇!不得了了,上千行的程式碼通通擠在 public MyProgram() 裡面 : 其實我還滿愛這樣寫的,但當然不可能產生 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 應該只負責「建立一個物件的屬性」 而不應該負責「進行一個物件的行為」 不是嗎? -- 討論看看 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.211.211.53

09/18 00:33, , 1F
委派應該是delegation
09/18 00:33, 1F
文章代碼(AID): #16isaOoA (OOAD)
討論串 (同標題文章)
文章代碼(AID): #16isaOoA (OOAD)