8

Service Stack のフレームワークを使用して Rest API を開発しています。すべてのレイヤーが分離されているため、ビジネス ロジック レイヤーの単体テスト用の DAL モックを作成できます。

制御の反転でキャッシュを構成しています:

container.Register<ICacheClient>(new MemoryCacheClient());

Whereは、いくつかのメソッドMemoryCacheClientで実装する単純なクラスです。ICacheClient

ここで質問があります。この制御の反転によってキャッシュへの呼び出しを含めるのに最適なレイヤーはどれですか?

  • BLL に含まれている可能性がありますが、単体テストに問題はありませんか?

  • IOCを失う必要があることを知って、それはDALにある可能性がありますか? そして、この場合、私は Web サーバーのキャッシュに依存しますが、それは間違っている可能性があります。

  • ここにいくつかのロジックがあり、一部の機能が失われることさえあることを知っているので、Web インターフェイスにある可能性がありますか?

  • 新しいレイヤーを作成して、Web インターフェイスと BLL の間にある可能性がありますか?

私はたくさん検索していくつかの記事を読みましたが、幸運ではありませんでした:

ありがとう

4

1 に答える 1

6

キャッシュはどちらのレイヤーにもある必要はありません。装飾されたメソッドでキャッシュを利用する呼び出しをラップし、IoC コンテナーでキャッシュ デコレーターの使用を構成することで、ビジネス ロジックとデータ アクセス ロジックの外部に保持できます。

特にServiceStackを使用してこれを行ったことはありませんが、パターンは十分に文書化されています:

于 2013-03-11T19:33:55.413 に答える