顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。
在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。
例子:请假,3天以内,开发经理批准就可以了,超过3天就要找部门经理。。。
class ChainRespPattern {
public static void main(String[] args) {
Handler level1 = new Leader();
Handler level2 = new Boss();
level1.setNextHandler(level2);
level1.process(10);
level1.process(11);
}
}
abstract class Handler {
protected Handler nextHandler;
public void setNextHandler(Handler nextHandler) {
this.nextHandler = nextHandler;
}
public abstract void process(Integer info);
}
class Leader extends Handler {
@Override
public void process(Integer info) {
if (info > 0 && info < 11) {
System.out.println("Leader 处理!");
} else {
nextHandler.process(info);
}
}
}
class Boss extends Handler {
@Override
public void process(Integer info) {
System.out.println("Boss 处理!");
}
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END