Простая библиотека кэширования Java или шаблон проектирования?
Мне нужно часто получать доступ к результатам трудоемких расчетов. Результат меняется нечасто, поэтому мне приходится время от времени пересчитывать данные, но пока можно использовать устаревший результат. Что было бы самым простым способом сделать это, и существует ли существующий метод библиотеки или шаблон проектирования?
Я думаю о чем-то вроде
private static List myCachedList = null;
...
// refresh list once in 3600 seconds
if (needsRefresh(myCachedList, 3600)) {
// run the calculation
myCachedList = ...
}
// use either updated or previous value from here on
Правильная реализация может быть не тривиальной, она может иметь дело с безопасностью потоков, условиями гонки и т. Д., Поэтому я бы предпочел использовать проверенную реализацию, чем бросать свою собственную здесь.