memo1.java
HogeService hogeService = new HogeService();
MemoizeService memo = new MemoizeService();
public void hoge(Integer hogeId) {
// HogeService.getHoge を呼ぶ
Hoge hoge = memo.wrap(hogeService).getHoge(hogeId);
//...
fuga(hogeId);
}
public void fuga(Integer hogeId) {
// HogeService.getHoge を呼ばずに先の値を返す
Hoge hoge = memo.wrap(hogeService).getHoge(hogeId);
//...
}
こういうことをしたい。
memo2.java
MemoizeService memo = new MemoizeService();
HogeService hogeService = memo(new HogeService());
とかするのは嫌だ。
なんかできそうな気もする。なんか既にそういういい感じのないかな。
キャッシュ寿命
memo3.java
Hoge hoge = memo.requestScope(hogeService).getHoge(hogeId);
Hoge hoge2 = memo.eternal(hogeService).getHoge(hogeId);
こんな感じでウェブアプリケーション内で使っている時に同一リクエスト間だけ有効なキャッシュになるとか、ずっと保持しておくとか適当に制御できると嬉しい。
まあどちらかというと後者はどうとでもなるので、前者の同一リクエスト間だけ有効なキャッシュとかやりたい。