Java

Javaでメモしたい

More than 5 years have passed since last update.
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);

こんな感じでウェブアプリケーション内で使っている時に同一リクエスト間だけ有効なキャッシュになるとか、ずっと保持しておくとか適当に制御できると嬉しい。
まあどちらかというと後者はどうとでもなるので、前者の同一リクエスト間だけ有効なキャッシュとかやりたい。