责任链模式:
定义:
是多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。
责任链模式的重点是在“链”上,由一条链去离相似的请求在链中央决定谁来处理这个请求,并返回相应的结果。
通用类图:
Handler实现三个职责:一是定义一个请求的处理方法HandleMessage,唯一对外开放的方法,二是定义一个链的编排方法,setNext ,三是定义了具体的请求者必须实现的两个方法:自己能够处理的级别和具体的处理任务。
优缺点:
优点:
优点是讲请求和处理分开。两者解耦,提高系统的灵活性。
缺点:
一是性能的问题,每个请求者都是从头到尾遍历一遍,
二是调试很不方便。
以古代女子的“三从”为例 :
“三从”是指“未嫁从父,既嫁从夫,夫死从子”