以前、大規模なView Controllerでコードを解く必要がありましたが、それが最初にコンテンツをナビゲートする能力を本当に妨げました。私が気づいた重要なことの1つは、View Controllerのサイズだけでは物事を分解するのに十分ではないということです。1つの大きなファイルを持つことは複雑であり、小さなファイルがたくさんあることも複雑です。次に、View Controllerをより小さな部分に分割するためにリファクタリングする正当な理由をいくつか示します。
MVC
View Controllerは、ViewとModelをつなぐ接着剤以上のことをすべきではありません。ネットワーク接続コード、画像操作コードなどがたくさんある場合は、それらをヘルパークラスに分割することを検討してください。
データソースとしてView Controllerを使用する複数のコントロール
View Controllerをデータソースとして使用するコントロールが画面上に多数ある場合は、それらを個別のデータソースオブジェクトに分割し、それらをデータソースにすることを検討してください。または、それらを個別のView Controllerに分割することもできます(View Controllerに他のコントローラに加えてTable Viewがある場合、それを独自のTable View Controllerクラスに分割できます)。
重複コード
異なるView Controllerにまったく同じコードがある場合は、1つの共有場所に配置します。これにより、コードが再利用可能になり、複雑さを管理しやすくなります。
View Controllerの複雑さを最小限に抑えるための追加のアドバイスを次に示します。
プログラマティックではなくストーリーボード
ビュー要素の作成は多くのコードであり、フレームジオメトリコードも多くの作業です。まだ自動レイアウト制約を使用して、できるだけ多くのビュー要素をストーリーボードに配置することを検討していない場合。
不要なコード/コメント
また、不要なコード/コメントも必ず削除してください。多くの場合、新しいView Controllerファイルには、使用していないメソッドが付属しています。そのようなメソッドを使用していない場合はdidReceiveMemoryWarning
、それを削除しても安全です。また、View Controllerファイルは非常に大きいため、古いコードやコメントを削除するのが怖い場合があります。それを先送りしないでください!複雑さを増すだけです。
通知
通知に関する質問に答えるには:通知は、すべてで使用するゴールデンハンマーではありません。特定のアクションが1つあるために、複数のView Controllerを同時に更新する必要がある場合、通知が役立つことがわかりました。ただし、通知には注意してください。通知を使いすぎると、通知を追跡しようとするのが非常に困難になります。