3

モデルに関連するいくつかの概念について、本当に良い説明が必要だと思います。

  1. 一般に、モデルは、Robotlegs のようなフレームワークで説明されているように、アプリケーション状態ホルダーまたはドメイン状態ホルダーの役割を果たしますか? 私は当初、モデルは完全にドメイン ベースであると考えていました。つまり、UserModel、LocationModel は、サーバー上で DAO クラスが果たす役割と同じ役割を果たします。ソース コードを調べれば調べるほど、UserAccountModel や ShoppingCartModel など、ドメインの状態ではなく、クライアント アプリケーションの状態に関連するプロパティやメソッドでいっぱいになっていることがわかります。

  2. ユーザーが複雑な関係を VO クラスに追加することを気にしないことがわかります。つまり、User が大量の写真を持っている場合、写真コレクションは明らかに UserVO クラスから省略されます。代わりに、ユーザー ID を使用したサービス呼び出しに基づいて、必要に応じて一連の PhotoVO オブジェクトがサーバーから読み込まれます。それはある種の経験則ですか? 一般的に、VO を可能な限り「むき出し」に保つのですか? これにより、すべてのデータを取得するためにサーバーに対して行わなければならない呼び出しの数が増えることはありませんか? さらに、それは一般的にドメインモデルを断片化していませんか? (サーバー上のエンティティ User クラスには常に photos プロパティがあります)

  3. サーバーへの呼び出しが非常に多いため、クライアント ストレージに既に存在する可能性のあるオブジェクトをフェッチするのが普通です。クライアント側のキャッシュを作成し、フェッチされるオブジェクトが既に存在するかどうかを確認することは理にかなっていますか、または一般的に、完全に同期されたオブジェクトを取得することの利点によって、もう一度取得するオーバーヘッドが支払われますサーバーから。そうしないと、変更が発生したときに、クライアント側のキャッシュに保存されているすべてのオブジェクトを処理する必要があります。個人的には、サーバーからオブジェクトを取得するオーバーヘッドは、以前に取得された可能性があるため、それほど大きくないと思います。私が言うには、新鮮で同期されたデータが必要です。

4

1 に答える 1

2

答えの多くは「場合による」であるため、あなたの質問に答えられるとは思いません。構築しているアプリケーションと UI のニーズによって異なります。

「ドメインの状態」と「アプリケーションの状態」の違いがよくわかりません。ただし、UI に実装される「値オブジェクト」スタイル クラスは、特定のビューの状態を保持することに重点を置く必要があると思います。単一のビューがデータベース テーブルと 1 対 1 の関係にあることは非常にまれです。そのため、私の UI データ オブジェクトはサーバー側のデータ オブジェクトと同一ではない可能性があります。ただし、AMF を使用して UI オブジェクトをサーバー側オブジェクトにマップすることは非常に一般的です。ただし、UI のすべてのオブジェクトがサーバー側で実装され、すべてのサーバー オブジェクトが UI で実装されるという意味ではありません。

VO クラスに複雑な関係を追加することを気にしない人がいることがわかります。

それがどこにあるのかわかりません。私はしばしばこれを正確に行います。ただし、ビューが何を表示するかによって異なります。ユーザーに関連する多くの写真がビューに表示されていない場合は、すべての写真を含むユーザー情報を取得するためにリモート呼び出しを行いません。

サーバーへの呼び出しが非常に多いため、クライアント ストレージに既に存在する可能性のあるオブジェクトをフェッチするのが普通です。

場合によります。私が書いたアプリ、サーバーへの呼び出しは必要に応じて行われます。必要に応じてそれらを制限する試みが行われます。既にデータをフェッチしてクライアントにキャッシュしている場合は、データを再度取得する代わりに、そのキャッシュを使用しようとします。

元の評価をもう一度言います。あなたの質問のほとんどに対する答えは、状況やアプリによって異なると思います。あなたは、物事がどのように行われるかについて、全体的に大まかに一般化することから始めているようです。しかし、私はそれらが普遍的な真実であるとは信じていません。アプリケーション アーキテクチャの問題に関する開発者の戦いは常に続いています。

于 2011-07-24T00:34:33.877 に答える