前言
责任链模式,纯demo,感觉TCC应该有用这个…
一、栗子
1:创建一个对象
import lombok.Data;
@Data
public class ChainModel {
private Long id;
private String name;
public ChainModel(Long id, String name) {
this.id = id;
this.name = name;
}
}
2:创建抽象类
import lombok.Data;
@Data
public abstract class AbstractChain {
//责任链中的下一个元素
protected AbstractChain nextChain;
public void checkChain( ChainModel model) {
check(model);
//有下一个节点,则执行下一节点检查
if (nextChain != null) {
nextChain.checkChain( model);
}
}
abstract protected void check(ChainModel model);
}
3:创建三个子类
public class FirstCheck extends AbstractChain {
@Override
protected void check(ChainModel model) {
System.out.println("第一层检查:"+model);
}
}
public class SecondCheck extends AbstractChain {
@Override
protected void check(ChainModel model) {
System.out.println("第二层检查:"+model);
}
}
public class ThridCheck extends AbstractChain {
@Override
protected void check(ChainModel model) {
System.out.println("第三层检查:"+model);
}
}
4:创建控制类
public class ChainPatternDemo {
//定义责任链的前后节点 顺序
private static AbstractChain getChain() {
AbstractChain first = new FirstCheck();
AbstractChain second = new SecondCheck();
AbstractChain third = new ThridCheck();
first.setNextChain(second);
second.setNextChain(third);
return first;
}
//执行类
public static void main(String[] args) {
AbstractChain chain = getChain();
chain.checkChain(new ChainModel(1L, "zhangsan"));
}
}
二、执行结果
总结
感觉责任链,就是定义多个节点的顺序,然后遍历每个节点的实现方法。