责任链模式
定义
责任链模式是将链中每一个节点看做是一个对象,每个节点处理的请求均不同,且内部自动维护一个下一节点对象。当请求从链式的首端发出时,会沿着链的路径一次传递给每一个节点对象,知道没有对象处理为止。
//所有的责任链节点共有接口
public abstract class AbstractHandler<T> {
protected AbstractHandler handler;
private void next(AbstractHandler handler) {
this.handler = handler;
}
abstract void doHandle(T t);
//通过内部类builder来构建一个单向链表 也可以单独抽取出一个builder类,
public static class Builder<T>{
AbstractHandler<T> head = null;
AbstractHandler<T> tail = null;
public Builder addHandler(AbstractHandler<T> handler) {
if(head==null) {
head=tail=handler;
}
tail.next(handler);
tail=handler;
//这是构造器模式的一种体现,处理完操作然后返回自己,便于链式编程,快速构建对象
return this;
}
public AbstractHandler<T> build(){
return head;
}
}
}
//需要链式处理的对象
public class Member {
private String name;
private String password;
private String roleName;
public Member(String name, String password, String roleName) {
this.name = name;
this.password = password;
this.roleName = roleName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
}
//验证参数的处理类
public class ValidateHandler extends AbstractHandler<Member> {
