2012-03-21 16 views
3

私はDataAccess Classを持っていて、それはインタフェースへの参照を持っています。インターフェイスは、使用するキャッシング戦略を表します。2つのオブジェクト間の相互参照を避けるにはどうすればよいですか?

キャッシング戦略には、起動時にキャッシュを満たすinitalize()メソッドのようなものがあります。しかし、そのメソッドはDataAccessクラスにデータへのアクセスを要求し、最終的には相互参照で終了します。

また、すべての実装がそれを必要とするわけではないので、setterメソッドでインターフェイスを「汚染」したくありません。また、すべてのフィールドを最終的にしたいので、DataAccessクラスにはセッターはありません。

データアクセスを呼び出す追加のレイヤーを作成できますか?

他のアイデア?

+0

これをもっと明確にするために模擬コードを投稿できますか? – sethu

答えて

1

内部参照キャッシュからデータを取得できない場合は、DataAccessクラスにのみアクセスするキャッシュ参照クラスを使用してDataAccessクラスをラップする必要があります。あなたが言及したように、これは余分なレイヤーで構成されますが、実装する方法によっては、アプリケーションコード(たとえば、AOPを使用して)を透過的にすることができます。

関連する問題