1. 简介
职责链模式的英文翻译是 Chain Of Responsibility Design Pattern。
在 GoF 的《设计模式》中,它是这么定义的:
Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it.
翻译成中文就是:
将申请的发送和接管解耦,让多个接管对象都有机会解决这个申请。将这些接管对象串成一条链,并沿着这条链传递这个申请,直到链上的某个接管对象可能解决它为止。
在职责链模式中,多个处理器(也就是刚刚定义中说的“接管对象”)顺次解决同一个申请。一个申请先通过 A 处理器解决,而后再把申请传递给 B 处理器,B 处理器解决完后再传递给 C 处理器,以此类推,造成一个链条。 链条上的每个处理器各自承当各自的解决职责 ,所以叫作职责链模式。
2. 准则
首先,职责链模式如何应答代码的复杂性。
首先,职责链模式如何让代码满足开闭准则,进步代码的扩展性。