1.职责链模式的定义
使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为至
2.职责链模式的UML
3.代码实现
public abstract class Handler{
protected Handler successor;
public void setHandler(Handler successor){
this.successor=successor;
}
public abstract void handleRequest();
}
public class ConcreteHandler1 extends Handler
{
public void handleRequest(){
boolean someCondition=false;
if(someCondition){
}else{
if(this.successor!=null){
this.successor.handleRequest();
}
}
}
}
public class ConcreteHandler2 extends Handler
{
public void handleRequest(){
boolean someCondition=false;
if(someCondition){
}else{
if(this.successor!=null){
this.successor.handleRequest();
}
}
}
}
public class Client
{
public static void main(String[] args){
Handler h1=new ConcreteHandler1();
Handler h2=new ConcreteHandler2();
h1.setSuccessor(h2);
h1.handleRequest();
}
}
4.职责链的本质: 分离职责,动态组合