MVC (また、ストア/サービス) を使用してアプリケーションを構築しているとしましょう。永続化メカニズムとして SQL が使用されます。そして、メモリ効率は大きな懸念事項です。
明らかに、SQL クエリを利用して、必要な場合にのみモデルの理論オブジェクトのフィールドを要求する必要があります。
たとえば、モバイル アプリでは記事のタイトルのリストを表示する必要がある場合がありますが、記事の本文はユーザーが特定のタイトルをタップするまで表示されません。この場合、最初にタイトルのみを SQL に要求します。
問題は、モデル オブジェクトがどのように見えるかということです。
私が考えることができる解決策は次のとおりです。
どのフィールドが入力されているかを示すいくつかの状態でモデルを強化します。これは、モデル オブジェクトの未入力フィールドに nil/NULL/None 値を使用してアーカイブすることもできます。
理論モデルを複数のクラスに分割します。前の例に従って、
Article
クラスとArticleDetail
クラスを 1 対 1 の関係で持つことができます。Store オブジェクトを忘れて、各モデル オブジェクトにコストのかかるフィールドを遅延評価させます。モデルは、その永続化メカニズムについて認識している必要があります。
これはよくある問題です。お気に入りのフレームワーク/ライブラリの ORM はどのように解決しますか? ベストプラクティスはありますか?