【发布时间】:2011-05-02 13:10:22
【问题描述】:
我有一个应用程序,它实现了一个命令对象模式来从服务器获取数据。现在我想实现一个客户端缓存,我需要一些关于如何处理缓存 eviction 失效的指针。
问题
为了获得一个对象,我通过 GetObject(id) 命令并接收带有该 id 结果的 GetObjectResponse。我有一个缓存可以很好地缓存 GetObject(id) 的响应。
但是,当我看到像 DeleteObject(id) 或 UpdateObject(id) 这样的命令时,GetObject(id) 的缓存响应需要失效。
我应该说,现实不一定像使用单个 id 参数那样简单。一些响应对象依赖于命令对象中的多个参数。此外,传递一个命令对象可能会使多个响应对象无效。
关于如何实现这一点的任何想法?提前致谢!
【问题讨论】:
-
引用 Haacked 的话:计算机科学中只有两个难题。命名事物、缓存失效和一个错误。
-
既然您已经在使用命令模式,请查看责任链模式。