小Q:什么是设计模式
慢慢:设计模式是系统服务设计中针对常见场景的一种解决方案,可以解决功能逻辑开发中遇到的共性问题。设计模式并不局限最终的实现方案,而是在这种概念模式下,解决系统设计中的代码逻辑问题。
小Q:什么是责任链模式?
慢慢:责任链的核心是解决一组服务中的先后执行关系,就像出差借款需要审批,5000 元以下直接找部门领导,5000 元以上需要找更高一级的领导审批。
小Q:赶快上代码!
慢慢:好的,我们以上述为例。
// 领导类
public abstract class Leader {
public static int LEVE_ONE = 1; // 1 级领导标志
public static int LEVE_TWO = 2; // 2 级领导标志
protected int level;
protected Leader nextLeader;
public void setNextLeader(Leader nextLeader) {
this.nextLeader = nextLeader; // 设置下属的小领导
}
public void examine() {
// 审批
Leader leader = this;
while (leader != null) {
System.out.println(leader.level + "已经审批通过");
leader = leader.nextLeader; // 交由下一级领导审批
}
}
}
一级领导
public class OneLeader extends Leader {
public int level = Leader.LEVEL_ONE;
public OneLeader(Leader nextLeader) {
super.setNextLeader(nextLeader);
}
}
二级领导
public class TwoLeader extends Leader {
public int level = Leader.LEVEL_TWO;
}
测试:
public class Demo {
public static void main(String[] args) {
// 设置领导的责任链
TwoLeader leader2 = new TwoLeader();
OneLeader leader1 = new OneLeader(leader2);
int money = 5000;
if (money > 5000) {
leader1.examine(); // 需要大领导先审批
} else {
leader2.examin();
}
}
}