《设计模式Design Pattern》读书笔记之十三
Chain of Responsibility模式
结构
目的
通过解除消息/请求(request)的发送者与接收者之间的绑定,允许request在一个对象链条中传递,增加request处理的灵活性。当然,一个不可避免的可能性是,该request可能在对象链条中传递到最后都没有被处理。
讨论
1, 对于successor;如果没问题的话,可以利用现有对象结构中现存的连接,比如composite中如果有parent reference的话。如果不行,那么只能为successor创建专用的连接。
2, 如果有必要,可以创建request对象,作为参数传递给HandleRequest()。然后,可以利用run-time type information来判断request的类型,或者request对象提供GetKind()之类的函数。
参考资料
《Design Pattern》 Gang-Of-4 1997