モデルに関連するいくつかの概念について、本当に良い説明が必要だと思います。
一般に、モデルは、Robotlegs のようなフレームワークで説明されているように、アプリケーション状態ホルダーまたはドメイン状態ホルダーの役割を果たしますか? 私は当初、モデルは完全にドメイン ベースであると考えていました。つまり、UserModel、LocationModel は、サーバー上で DAO クラスが果たす役割と同じ役割を果たします。ソース コードを調べれば調べるほど、UserAccountModel や ShoppingCartModel など、ドメインの状態ではなく、クライアント アプリケーションの状態に関連するプロパティやメソッドでいっぱいになっていることがわかります。
ユーザーが複雑な関係を VO クラスに追加することを気にしないことがわかります。つまり、User が大量の写真を持っている場合、写真コレクションは明らかに UserVO クラスから省略されます。代わりに、ユーザー ID を使用したサービス呼び出しに基づいて、必要に応じて一連の PhotoVO オブジェクトがサーバーから読み込まれます。それはある種の経験則ですか? 一般的に、VO を可能な限り「むき出し」に保つのですか? これにより、すべてのデータを取得するためにサーバーに対して行わなければならない呼び出しの数が増えることはありませんか? さらに、それは一般的にドメインモデルを断片化していませんか? (サーバー上のエンティティ User クラスには常に photos プロパティがあります)
サーバーへの呼び出しが非常に多いため、クライアント ストレージに既に存在する可能性のあるオブジェクトをフェッチするのが普通です。クライアント側のキャッシュを作成し、フェッチされるオブジェクトが既に存在するかどうかを確認することは理にかなっていますか、または一般的に、完全に同期されたオブジェクトを取得することの利点によって、もう一度取得するオーバーヘッドが支払われますサーバーから。そうしないと、変更が発生したときに、クライアント側のキャッシュに保存されているすべてのオブジェクトを処理する必要があります。個人的には、サーバーからオブジェクトを取得するオーバーヘッドは、以前に取得された可能性があるため、それほど大きくないと思います。私が言うには、新鮮で同期されたデータが必要です。