0

ばかげた質問かもしれませんが、いつ新しいクラスを作成する必要があるのか​​、いつ推奨されるのかを知りたいと思います。これは私の心の中で本当に明確ではありません。今のところ、コントローラーごとに1つのクラスしかないので、それだけです...私のコードはすべてこのクラスにあります。私はそれがより良いかもしれないと思います...

よろしく

4

1 に答える 1

3

MVCパターンに従っている場合、ほとんどの場合、クラスは次のいずれかのカテゴリに分類する必要があります。

  • コントローラー:UIKit / NSビューコントローラー。ビューを表示し、それらのビューのインタラクティブ要素からメッセージを受信します。
  • ビュー:コントローラーの1つによって提示されるビューが、それ自体を提示するために多くのカスタムロジックを必要とする場合は、それを独自のクラスに分離することをお勧めします。基本的に、これはInterface Builder(.xibファイル)を使用してビューを作成するときに行われます。
  • モデル:アプリケーションのロジックをカプセル化するオブジェクト。

たとえば、このデザインパターンに従ってRSSビューアを構築している場合は、次のクラスを作成する可能性があります。

  • 個々のRSSアイテムを表すモデル、およびRSSフィードを表すモデル。独自のRSSフィードパーサーをロールする場合は、別のクラス内のエントリをフェッチするために必要なロジックを分離する必要があります。
  • フィードと個々のビューの表示を処理するコントローラー。コントローラーは、データの提示のみに関心を持つ必要があります。iOSのRSSビューアの場合、クラスUINavigationControllerのルートビューコントローラでを使用する可能性があります。テーブルセルをタップすると、個々のRSSアイテムの表示を担当するUITableViewController別のセルがプッシュされます。UIViewController
  • UITableControllerはアイテムのリストを表示するためのデフォルトのビューがありますが、個々のアイテムを適切に表示するには、カスタムロジックが必要になる可能性があります。ビュークラスを作成するか.xib、これらを提示することをお勧めします。はUIViewController、ビューにデータを入力する役割を果たします(に値を設定するIBOutletsなど.xib)。

一般的なガイドラインとして、単一責任の原則を遵守するように努める必要があります。すべてのクラスが単一責任を持ち、多かれ少なかれ自律的にタスクを実行できます。

このように、コントローラーは、単一の種類のビューの表示を処理し、そのビューからメッセージを委任する責任があります。ビューはデータの表示を担当します。モデルは、それらが作成された単一の目的に責任があります-RSSフィードからオブジェクトにデータをマッピングするためのRSSアイテム、RSSアイテムのグループを管理するためのRSSフィードオブジェクト(追加、削除、場合によってはを介してさらにフェッチするNSURLRequest)。

注: Stack Overflowのガイドラインによると、質問は少しあいまいです。そのため、反対票が投じられている可能性があります。直面しているジレンマの具体的な例や説明を追加することを検討してください。

于 2012-05-10T18:49:25.740 に答える