版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
职责链模式
UML
解释说明
- 职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
代码实现
- Handler.class
package learn20;
public abstract class Handler {
protected Handler successor;
public void setSuccessor(Handler successor) {
this.successor = successor;
}
public abstract void handlerRequest(int request);
}
- ConcreteHandler1.class
package learn20;
public class ConcreteHandler1 extends Handler {
@Override
public void handlerRequest(int request) {
if (request < 10) {
System.out.println("这是一个小于10的数字!");
} else if (null != successor) {
successor.handlerRequest(request);
}
}
}
- ConcreteHandler2.class
package learn20;
public class ConcreteHandler2 extends Handler {
@Override
public void handlerRequest(int request) {
if (request >= 10) {
System.out.println("这是一个不小于10的数字!");
} else if (null != successor) {
successor.handlerRequest(request);
}
}
}
- Main.class
import learn20.*;
public class Main {
public static void main(String[] args) throws Exception {
ConcreteHandler1 c1 = new ConcreteHandler1();
ConcreteHandler2 c2 = new ConcreteHandler2();
c1.setSuccessor(c2);
c1.handlerRequest(7);
c1.handlerRequest(13);
}
}
参考资料
- 大话设计模式