相关关联:
如何优化审批流(责任链模式结合建造者模式);
代理模式实战;
定义:是将链中每一个节点看做是一个对象,每个节点处理的请求均不同,且内部自动维护一个下一个节点对象。当一个请求从链式的首段出发时,会沿着链的路径依次传递给每一个节点对象,直至对象处理完这个请求为止(行为型模式)
使用场景:1、对个对象处理同一个请求,单具体由那个对象处理则在运行时动态决定;
2、在不明确指定接受者的情况下,向多个对象中的一个提交一个请求
3、可动态指定一组对象处理请求
核心代码摘录:
public abstract class Handler<T> {
protected Handler next;
//内部自动维护一个下一个节点对象
public void setNext(Handler source){
this.next = source;
}
public abstract void doHandler(User user);
//记住这个内部类的写法(结合建造者模式优化代码)
public static class Builder<T>{
private Handler<T> head;
private Handler<T> tail;
public Builder<T> addHandler(Handler handler){
if (this.head == null){
//链为空,头尾都为handler
this.head = this.tail = handler;
} else {
//从尾部开始追加,当前尾部的next赋值为handler
this.tail.next = handler;
//尾部赋值为handler
this.tail = handler;
}
return this;
}
public Handler builder(){
return this.head;
}
}
}
网友评论