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.职责链的本质:分离职责,动态组合