2012-05-10 19 views
0

たぶんそれは疑問な質問ですが、いつ新しいクラスを作成するか、いつそれをいつ行うべきかを知りたいと思います。これは私の心の中では本当に明確ではありません。今のところ、私はコントローラごとに1つのクラスしか持っていません。それは...すべてのコードはこのクラスにあります。私はそれがより良いかもしれないと思う ...新しいクラスを作成するときは?

よろしく

+4

これは状況によって異なりますので、具体的な例を投稿する必要がありますので、ここにいる人が推奨することができます。 –

+0

私は例がありません。それは一般的に知っているだけです – Benjamin

答えて

3

を、あなたのクラスは、これらのカテゴリのいずれかに分離する必要がありますほとんどの部分は、MVCパターンを以下の場合:

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

    • モデル、ならびに1つ:あなたはこのデザインパターンに応じRSSビューワを構築している場合

    たとえば、あなたはおそらく次のクラスを作ると思いますRSSフィード。独自のRSSフィードパーサをロールする場合は、別のクラス内のエントリをフェッチするために必要なロジックを分離することをお勧めします。

  • フィードと個々のビューの表示を処理するコントローラ。コントローラは、データの提示にのみ関わる必要があります。 iOS上のRSSビューアの場合、UITableViewControllerクラスのルートビューコントローラでUINavigationControllerを使用する可能性があります。表のセルをタップすると、個別のRSSアイテムを表示する別のUIViewControllerがプッシュされます。
  • UITableControllerにはアイテムのリストを表示するデフォルトビューがありますが、個々のアイテムはカスタムロジックがうまく表示される必要があります。これらを表示するには、ビュー・クラスまたは.xibを作成するとよいでしょう。 UIViewControllerは、ビューのデータを入力します(.xibなどのIBOutletsの値を設定します)。

は、一般的なガイドラインとして、あなたは、単一の責任を持つべきsingle responsibility principle --everyクラスを遵守しようとする必要があり、それは多かれ少なかれ自律的にそのタスクを実行することができます。

コントローラは、1つの種類のビューの表示を処理し、そのビューからのメッセージを委任する責任があります。ビューはデータの表示を担当します。モデルは、RSSフィードからオブジェクトにデータをマッピングするためのRSSアイテム、RSSアイテムのグループを管理するためのRSSフィードオブジェクト(NSURLRequestを介して追加、削除、おそらく多くをフェッチする) 。

注:ご質問はStack Overflow guidelinesに基づいて少し曖昧ですので、投票が行われた理由が考えられます。あなたが直面しているジレンマの具体的な例や説明を追加することを検討してください。

+0

この完全な答えをありがとう – Benjamin

関連する問題