たとえば、名前のリストを取得してNSMutableArrayに保存しているとします。コントローラ(UIViewController)またはモデル(Friendsオブジェクト)でデータをフェッチするために実際にサーバーを呼び出すメソッドを実装していますか?モデルビューコントローラ:コントローラまたはモデルはサーバからデータをフェッチしますか?
答えて
これは、達成しようとしていることに依存する設計上の決定です。モデルが単一のサービスのコンテキストでのみ意味がある場合、またはモデルがサーバー上のすべてのデータにアクセスできるようにする場合は、サーバーへの接続をデータモデルに構築します。たとえば、TwitterやFlickrのようなサービスのクライアントを構築する場合など、これは意味をなさないかもしれません。
一方、サーバからファイルを取得していて、それが終了した場合は、コントローラで通信を行うのが理にかなっています。コントローラは、アプリケーションの特定の動作に対して、再利用可能性が低く、カスタマイズされている傾向があります。データがモデルのどこから来るのかを詳細に把握することで、モデルの再利用が可能になります。また、テストも簡単です。ローカルファイルを読み込んでモデルに格納するだけのテストコードを書くことができます。店舗は、具体的にフェッチするように設計されています(http://www.bignerdranch.com/book/ios_programming_the_big_nerd_ranch_guide_rd_edition_)
:「ビッグオタクランチガイドIOSのプログラミング」
これは良い質問です。私は最良の方法はコントローラを使っていると思います。なぜなら、あなたのモデルを他のモデルが正しく動作するために必要とするのを避けるからです。私はあなたがモデルでそれをやって "適切なmvc"に違反しているとは思わないが。
モデルに入れたいと思います。あなたが行うことは、データのモデルを調べることです。モデルは、内部データストアや外部のもの(サーバーのようなもの)のいずれであろうと、モデルの処理方法を処理します。
1つの方法は、リポジトリパターンを使用することです。これを行うには、Modelフォルダにリポジトリオブジェクトを作成し、すべてのデータベース関連メソッドをそこに配置します。コントローラはリポジトリクラスを呼び出してデータを取得します。これにより、実際のモデルオブジェクトをデータベースアクセスメソッドから分離することができます。
は、私はアーロン・ヒレガスの本の中で発見されたMVCSパターン(モデル - ビュー - コントローラ・ストア)、使用しますサーバ、ローカルファイル、永続化されたコレクション、データベースなどから来ているかどうかにかかわらず、データを保存することができます。
非常に進化的なアプリケーションを構築できます。たとえば、Webサービスに基づいてアプリケーションを構築することができます。データを保持する日には、コントローラー内の1行のコードを変更することなくストアを変更するだけです。
それは私が個人的にDAO、またはデータヘルパークラスを作ると思いますたくさんのリポジトリパターン(http://msdn.microsoft.com/en-us/library/ff649690.aspx)(CF BobTurboの答え)
ようなものです。物事がより複雑になると、客観的なCの厳しいMVCに従うことは非常に難しいです。しかし、それをモデルやVCに入れることも間違いではありません。
- 1. Emberコントローラは、要求に応じて、モデルからデータをフェッチします。どうやって?
- 2. 他のモデルのビューまたはコントローラからモデルにアクセスする
- 3. codeigniterのモデルでノードjからデータをフェッチする方法は?
- 4. Cocoa NSSortDescriptorsはモデルまたはコントローラに属していますか?
- 5. ビューからコントローラへのHTMLコントロールからデータをフェッチする方法は?
- 6. モデルまたはコントローラでdate_formatを使用しますか?
- 7. サーバから情報を受信した後、コントローラからサービスにデータを渡す
- 8. AngularJSはコントローラから別のコントローラにデータを渡します
- 9. モデルビューコントローラ:Qtでプログラミングすると、モデルは自動的にデータを更新しますか?
- 10. Codeigniter - コントローラのデータをモデルからアクセス
- 11. Opencartはコントローラからモデルに変数を渡します
- 12. resultSet.next():バッファORからデータベースからデータをフェッチしますか?
- 13. ハードコーディングカテゴリまたはAPIからフェッチする
- 14. Laravelのモデルまたはコントローラからのクエリテーブル
- 15. 他のコントローラまたはモデルから部分的に表示
- 16. モデルからコントローラへのデータの取得
- 17. レールはモデルまたはコントローラでメソッドを初期化しますか? Railsテストエラー
- 18. facebookからフェッチされたモデルクラスからView Controllerにデータを渡します。
- 19. 別のコントローラからコンテンツをレンダリングまたはリダイレクトしますか?
- 20. jsonサーバからデータをフェッチしている間に$ resourseサービスにエラーが発生しました
- 21. 複数のhtmlページのコントローラからデータをフェッチできません
- 22. コントローラまたはモデルでPOSTデータを取得
- 23. テーブルビューはデータベースからフェッチされたデータを表示していません
- 24. UI5はコントローラーからモデルに新しいデータをバインドします
- 25. Zend RestController>モデルまたはコントローラを使用してデータを取得しますか?
- 26. データソースオブジェクトはどこに属していますか?コントローラまたはモデル?
- 27. ASP.NETはoDataコントローラから不正なデータを返します
- 28. Angular2はOdataコントローラからデータを取得します
- 29. ASP MVCは別のコントローラからのデータをバインドします
- 30. モーダルはイメージからデータをフェッチする方法はありますか?
モデルにする必要があります。 – doNotCheckMyBlog