"В" Информатике "есть только две трудные проблемы: недействительность кэша и именование вещей".
Фил Карлтон
Есть ли общее решение или метод для недействительности кеша; знать, когда запись устарела, поэтому вы всегда сможете получать свежие данные?
Например, рассмотрим функцию getData()
, которая получает данные из файла.
Он кэширует его на основе последнего измененного времени файла, которое он проверяет каждый раз, когда он вызывает.
Затем вы добавляете вторую функцию transformData()
, которая преобразует данные и кэширует ее результат в следующий раз, когда вызывается функция. Он не знает о файле - как вы добавляете зависимость, которая, если файл изменен, этот кеш становится недействительным?
Вы можете называть getData()
каждый раз при вызове transformData()
и сравнивать его со значением, которое было использовано для создания кеша, но это может оказаться очень дорогостоящим.