设计模式(十二):责任链模式(Chain of Responsibility)

生活或工作中经常会遇到一种情境,即要完成或处理某件任务时,需要经过层层传递到某一层级才能得到处理。

例如,加薪审批,直接的小组长可能并没有权限,需要向上报批,可能需要经过好几层到副总级别才得到处理。例如,击鼓传花游戏,花在多个人之间传递把大家连接起来,鼓声落,谁持有花谁就喝酒。

这种情境在软件设计中也是存在的,多个对象之间相互引用而形成一条链,最终链中的某一个对象处理了任务,而客户端并不需要知道具体是谁处理的,对象也不需要知道任务具体来自谁, 这就是责任链的最简单模型。

阅读更多