この質問は、OOPのMVCパターンに関する概念的なものです。プロットは次のとおりです。RESTWebサービスで動作するリッチクライアントアプリケーションを使用しています。サーバー上のリソースに対してGETリクエストを実行すると、サーバーはXML形式の応答を返します。応答はRSSフィードのように見えます。クライアントアプリケーションは、このXMLを解析して読み取り可能なmodに表示する必要があります。
基本的にサーバーデータベーステーブルを反映するモデルオブジェクトを作成しました。また、パーサーとビューコントローラー(および明らかにビュー)もあります。
これが今日の仕組みです。ビューコントローラは、パーサーに解析を開始するように指示し、パーサー(SAXタイプ)はXMLを読み取り、モデルオブジェクトをインスタンス化して、そのプロパティに詳細をロードします。パーサーがアイテムの処理を完了するたびに、ビューコントローラートラフデリゲートメソッドに通知します。解析されたアイテム(タイプはモデルオブジェクト)をViewControllerに送信します。ビューコントローラは、このアイテムをコレクションに追加します。
パーサーがXMLの解析を終了すると、ビューコントローラーに通知し、コレクションの場合はビューコントローラーが各アイテムを読み取り、ビューを構築します。
これが私の質問です。
- これは良い実装ですか?
- コレクションの所有者は直接モデルである必要があると思うので、View Controllerはモデルに解析の開始を要求し、パーサーはView Controllerではなくモデルに通知し、最後にモデルはコレクションをViewControllerに送り返します。これは良いですか?
- モデルとパーサーをマージする必要がありますか?