责任链模式:拥有相互依赖的处理程序是一种好习惯吗?

时间:2010-05-16 22:55:06

标签: chain-of-responsibility

我有这样的场景:我有一个查询处理程序链,第一个是查询缓存,如果缓存无法回答它或者答案是陈旧的,那么点击数据库,如果找不到回答或答案再次陈旧,然后查询远程Web服务。

但我不确定这是否是使用此模式的正确方法,因为工作流程已经非常固定,缓存和数据库处理程序依赖于下一步的返回结果来刷新其记录。

2 个答案:

答案 0 :(得分:0)

严格来说,你指的是责任链模式。听起来更像是在实现缓存。如果您正在实现缓存,那么您描述的方案很好。如果你正在寻找真正的责任链,那就不是。

答案 1 :(得分:0)

您可以实现一个简单的继承层次结构而不是像这样的链。

Interface
+getData()
^
|
RemoteWebserviceImpl
^
|
DatabaseImpl
^
|
CacheImpl