“计算机科学只有两个难题:caching失效和命名事情。” 菲尔·卡尔顿 是否有一个通用的解决scheme或方法来使caching无效; 要知道什么时候一个条目陈旧,所以你保证总是得到新的数据? 例如,考虑从文件获取数据的函数getData() 。 它基于文件的最后一次修改时间对其进行caching,每次调用它时都会进行检查。 然后添加第二个函数transformData()来转换数据,并在下次调用函数时caching结果。 它没有文件的知识 – 你如何添加依赖,如果文件被改变,这个caching变得无效? 每次调用transformData()都可以调用getData() ,并将其与用于构buildcaching的值进行比较,但这可能会导致代价非常高昂。