作者godfat (godfat 真常)
看板OOAD
标题Re: [资料] 神之物件 (God object, Blob AntiPattern)
时间Mon Aug 6 19:57:15 2007
※ 引述《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
1F:推 Eventis:所以,这个写法 , 1)相当application-specific 08/07 16:42
2F:→ Eventis:2. 需要document特别提醒使用package的人initiator会play 08/07 16:42
3F:→ Eventis:3. limited reusability ? 08/07 16:43
4F:→ Eventis:如果只是有限用途不管以後要怎麽用会怎麽用的话 08/07 16:55
5F:→ Eventis:也不是很有拿出oo这把大刀的必要吧? 08/07 16:56
6F:→ Eventis:教我oo的老师说oo的最高境界就是同一套界面与系统 08/07 16:57
7F:→ Eventis:可以用在完全不同的应用,甚至不需要相同的功能. 08/07 16:57
8F:→ Eventis:只要它符合抽象层次上的一致性. 08/07 16:58