私のアプリにはController
、mainメソッドで開始されたものがあります。コントローラは、フック、データベース接続、UI、別の接続などを初期化します。プログラムの状態のほとんどを保持します(いいえ、シングルトンではありません)。別の例では、コマンドの解釈と送信を処理するボット用のコントローラーがあります。どちらもかなり大きなファイルです。
私は神のオブジェクトについて読みましたが、それを分割する方法を本当に知りません。ボットでインタープリターとディスパッチャーを分割すると、恐ろしいコールチェーンが作成されます(のようなものgetBot().getParser().getOutput().sendMessage(recipient, message)
)。同様に、最初のコントローラーでは、物事を分割すると、フィールドといくつかのエイリアスユーティリティメソッドを保持するDataオブジェクトが作成されます。それらを分割すると、事態はさらに悪化します。そして、あなたがその維持不可能であると考える前に、それは実際にはそうではありません。ボットコントローラーも作成していませんが、何が起こっているのかはわかっています。
ただし、問題は、Botクラスの長さが2000行(Javadocコメントを削除した場合はおそらく短い)であり、Botの長さが約1000行であるということです。たくさんの線=神オブジェクト。しかし、プロジェクトの1つまたは2つのコアクラスで問題ありませんか?