6

(ContactsRepository)のようなメソッドを持つリポジトリがあるとしますgetAllContacts(userId)。サーバーからすべての(ContactsRepository)データを取得します。最初にメソッドを呼び出した後getAllContacts(userId)、このデータをキャッシュしたいと思います。私の質問は、キャッシュメカニズムをどこで実現する必要があるかということです。同じように、メソッドを再度(ContactsRepository)呼び出しgetAllContacts(userId)てリポジトリをキャッシュデータに戻すか、データを別の場所(おそらくリポジトリ)に配置する必要があります。

4

2 に答える 2

4

リポジトリを使用して、キャッシュまたはデータベースからデータを取得できます。リポジトリ クラスに update メソッドがある場合は、キャッシュ アイテムを効果的に無効化することもできます。

したがって、リポジトリ内のキャッシュへのアクセスをカプセル化できます: http://martinfowler.com/eaaCatalog/repository.html

リポジトリのキャッシュを実装する別の例: http://ardalis.com/building-a-cachedrepository-via-strategy-pattern

于 2012-10-31T10:40:01.680 に答える
1

キャッシュすることはできますが、ドメイン ロジックを複数のリポジトリ (複数のマシンなど) で実行する場合は、キャッシュの一貫性を忘れないでください。

于 2012-10-31T17:18:29.263 に答える