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

看板OOAD作者 (godfat 真常)時間17年前 (2007/08/06 19:57), 編輯推噓1(107)
留言8則, 1人參與, 最新討論串6/19 (看更多)
※ 引述《PsMonkey (痞子軍團團長)》之銘言: : 你不能用「programmer 會打字打到煩」當作理由 : 反過來說,這個理由(pr 爽最重要)發展到極致 : 就會產生神之物件 : 那,幹麼還要用 OO.... Orz 不是吧,你不能假設每個 programmer 的爽都是製造出神物吧 :p : 對於你的 app,你的 Sound 就是一個小小 lib 但是對於我的 app, 有些功能可能是完全不需要考量的 像是也許我的 sound 永遠不需要暫停,那就直接 delete 就好了, 根本不用實做 pause. : 你已經知道這兩個動作是沒有相關、或是沒有強制性的前後關係 : 那這不是假設,這是已知 : 你現在是假裝忽略這個已知,這不是假設 [指] 不是,是假設他們可以是不可分割的,對於不同 domain, 分割性都不盡相同。 : 如果現在就順手弄好,雖然 coding 的時候會多打幾個字 : 但是你知道你永遠不會回頭把這兩個東西拆開來 : 那個利多? 其實沒有拆開來,不見得真的是完全沒有拆開來。 像上面所提到的 sound, 在我的 c'tor 中可以是這樣: function Sound(){ // ... this.play(); } 然後 play 其實是 private function, 因為 app 用不到。 如果真的很不幸需要用了,再把 play 改回 public, 接著再視情況看要不要把 this.play 拆出 c'tor. : 很多人會嫌麻煩,乾脆重新寫一個新的... : 造成一堆作相同事情的物件(ㄜ... 最後這個好像離題了) 說到這個,最近寫網站碰到一個讓我覺得很困擾的事﹍。 就是會有很多好像很像,其實又不太像,而且重複性又有點多又不太多的情況。 例如有兩份很像,但是又不太像的表格要填。 這種時候,如果把相同之處拉出來,很可能會做得很辛苦, 因為有些時候,有些東西就是很難抽出來。一旦終於成功抽出來, 改相同的地方很快樂時,又忽然發現其實之前以為他們是相同, 但實際上還是有一點點不一樣,結果又得把剛才抽好的再 copy 回去, 然後略做修正。剛剛是白抽的嗎﹍﹍ 所以現在我決定除非超過兩次以上的重複,否則不輕易抽出來﹍﹍。 只有兩次而已,copy & paste & edit 反而比較不容易出錯又快速。 至於第三次如果又出現了怎麼辦?就再來評估要繼續 copy 還是真的要抽了。 == 還是覺得寫網站不太好玩 :( 瑣碎的事太多了 --   『風車』が廻り続ける度に 『美しき』幻想が静かに紡がれ    『焔』の揺らめきの外に 『腕』を伸ばす愚かな者達 -《Roman》5th Story  『宝石』をより多く掴もうと 『朝と夜』の狭間を彷徨い続ける Track 10   『星屑』の砂の煌めきにも 『葡萄酒』の仄甘い陶酔を魅せ 黄昏の賢者 『賢者』が忌避する檻の中から 『伝言』の真意を彼等に問うだろう   『天使』が别れを告げし時 『地平線』は第五の物語を識る -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.28.18

08/07 16:42, , 1F
所以,這個寫法 , 1)相當application-specific
08/07 16:42, 1F

08/07 16:42, , 2F
2. 需要document特別提醒使用package的人initiator會play
08/07 16:42, 2F

08/07 16:43, , 3F
3. limited reusability ?
08/07 16:43, 3F

08/07 16:55, , 4F
如果只是有限用途不管以後要怎麼用會怎麼用的話
08/07 16:55, 4F

08/07 16:56, , 5F
也不是很有拿出oo這把大刀的必要吧?
08/07 16:56, 5F

08/07 16:57, , 6F
教我oo的老師說oo的最高境界就是同一套界面與系統
08/07 16:57, 6F

08/07 16:57, , 7F
可以用在完全不同的應用,甚至不需要相同的功能.
08/07 16:57, 7F

08/07 16:58, , 8F
只要它符合抽象層次上的一致性.
08/07 16:58, 8F
文章代碼(AID): #16jmoUdx (OOAD)
討論串 (同標題文章)
文章代碼(AID): #16jmoUdx (OOAD)