21/02/08 22:01:57.53 oiCGlHqI.net
>>178つづき
神オブジェクトの危険性としては
自分一人の開発で神オブジェクトの中身をすべて把握しているなら影響範囲はわかっているだろうけど、1年後2年後もそれを覚えていられる人はまれ
影響範囲を忘れた後神オブジェクトの変更をしなきゃいけないとしよう(神オブジェクトはあらゆる機能を持つため変更も頻繁に入る)
どこに影響がでるかわからないからおいそれと変更できず、まず影響範囲を調査することから初めなきゃならなくなる
極端な例だけど100個のフィールド、100個のメソッドがある神オブジェクトの影響範囲を調べないといけないとしたら、それだけでうんざりするだろう
そして調査をすり抜けたメソッドがまったく思いもしなかったバグを生む・・・それが発覚するのは納品/公開後・・・みたいな悪夢も考えられる
蛇足だけどCorgi Engineの作者は最初の頃キャラの能力(走るとかジャンプとか)をもたせるクラスを1つだけつくって
その中にすべての能力の処理を書いていたらしいけど、メンテナンスが難しくなったので各能力ごとにクラスを分ける形に変更したそうな
ちなみにこうすることで新たな能力の追加をする際既存コードに手を加えなくて済むという「開放/閉鎖の原則」にも従った設計になってるんだけどさすがに割愛