意图:使多个请求对象都有机会处理请求,从而避免请求对象的发送者和接收者之间的耦合关系。将这些请求对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
职责链模式典型结构图
职责模式中ConcreteHandle将自己的后继对象(向下传递消息的对象)记录在自己的后继表中,当一个请求到来时,ConcreteHandle先会检查自己有没有匹配的处理程序,如果有就自己处理,否则就传递给他的后继。下面的实例程序中只是简化了一下,ConcreteHandle只是简单的检查看自己有没有后继,有的话将请求传递给后继进行处理,没有的话就自己处理。
示例代码: