【ごっどおぶじぇくと】
ゴッドオブジェクト とは?
最終更新:
💡 一つに詰め込みすぎた責務を、変更の理由で整理する
あまりに多くの責務を持ちすぎたクラスやモジュール。保守性を著しく低下させるアンチパターン。
📌 このページのポイント
どうやってゴッドオブジェクトに気づく?
一つのクラスに、別々の理由で変更する処理が集まっていないか見よう。たとえばUserManagerが認証、メール送信、課金まで抱えている場合だよ。行数やメソッド数は手掛かりになるけれど、「1000行なら該当」のような共通の境界ではないんだ。
大きなクラスなら全部ダメなの?
名前や大きさだけでは決まらないよ。処理どうしの関連が薄い、ほかのクラスのデータに過度に依存する、変更が無関係な機能に及ぶ、といった点を調べるんだ。機能を追加するたびに同じクラスへ詰め込むと、こうした状態になりやすいね。
どうやって分割する?
予防するには?
まとめ:ざっくりこれだけ覚えればOK!
「ゴッドオブジェクト」って出てきたら「責務を持ちすぎた巨大クラス(アンチパターン)」と思えればだいたいOK!
📖 おまけ:英語の意味
「God Object / God Class」 = 神オブジェクト・神クラス
💬 全知全能の神のように何でも知り、何でもこなそうとするクラスをたとえた言葉だよ。責務が集中して、理解や変更が難しくなる状態を指すんだ