5

1:1 の関係ではゴースト パターンを使用しますが、1:n の関係でこれで十分かどうかはわかりません。

たとえば、100 個の Item オブジェクトを持つ可能性のある Order オブジェクトを読み込む場合、最初に items プロパティに NULL を割り当てます。

質問は:

A) NULL を割り当ててから、items プロパティへの最初のアクセス時に、そのアイテムのすべての注文を探して、それらすべてをロードする必要がありますか?

B) または、すべての order_id のみを含む軽量のレコード セットのみをロードし、order_id のみが設定されている 100 個のアイテム ゴースト オブジェクトをロードする必要がありますが、それ以外はすべて NULL です。アイテム オブジェクトにアクセスして詳細を取得するとすぐに、その特定の Item オブジェクト データを遅延ロードしますか?

4

1 に答える 1

1

IMO 遅延読み込みのニーズは状況によって異なります。ただし、100 個のアイテムを入れるのに十分な大きさの注文がある場合、100 個のアイテムすべてを同時にロードしたい場合はめったにありません。

私がお勧めするのは、アイテムの「ページ」または 1 つのアイテムだけをロードできるように、各アイテムをオンデマンドでロードすることです。たとえば、すべてのアイテムをリストする必要がある場合、そのリストを「ページ」にロードできます。各アイテムはオンデマンドでロードできるため、選択したページをロードするだけです。さらに、パフォーマンスのために、おそらくこれらのオブジェクトをリサイクルしたいので、たとえば 10 個の Ghost アイテムを構築し、一度に「ページ」をそれらの 10 個のアイテムにロードすることを検討してください。

一方、アイテムはオンデマンドでロードされるため、1 つのアイテムをロードするだけで、そのアイテムの完全な詳細を、必要なときにのみ表示できます。

于 2012-10-16T15:47:22.817 に答える