Apple のガイドラインに従って、iPhone アプリケーションの画面ごとに UIViewController のサブクラスを 1 つ作成します。しかし、これらのクラスはコードの行数とメンバー変数の数の両方の点で非常に大きくなることが一貫してわかっています。
定義上、それらは非常に多くの異なる問題 (たとえば、ビューのライフ サイクル、ビューとモデルの間の仲介、場合によってはタッチ処理、制御ロジック、アラートの管理、その他の UI 状態など) を担当することになります。
これは、単一責任の原則に違反するだけでなく、単体テストがほぼ不可能な大量のコードが生成されます。
どのような責任/懸念事項を新しいクラスに分割する傾向がありますか? UIViewController サブクラスの場合、どのような種類の責任が明確な分離の良い候補になると思いますか?