package com.leitao.demo.design;
/**
* 责任链模式
* @Description: TODO
* @Author LeiTao
* @Date 2023/5/2
* @Version V1.0
**/
public class ChainOfResponsibility {
public static void main(String[] args) {
Handler fuDaoYuan = new FuDaoYuan();
Handler yuanZhang = new YuanZhang();
Handler xiaoZhang = new XiaoZhang();
fuDaoYuan.setNext(yuanZhang);
yuanZhang.setNext(xiaoZhang);
fuDaoYuan.HandleRequest(14);
}
}
abstract class Handler{
protected Handler next;
public void setNext(Handler next) {
this.next = next;
}
public abstract void HandleRequest(int request);
}
class FuDaoYuan extends Handler {
@Override
public void HandleRequest(int request) {
if (request <= 7){
System.out.println("辅导员审批通过");
}else if (next != null){
next.HandleRequest(request);
}else {
System.out.println("无法审批");
}
}
}
class YuanZhang extends Handler {
@Override
public void HandleRequest(int request) {
if (request <= 15){
System.out.println("院长审批通过");
}else if (next != null){
next.HandleRequest(request);
}else {
System.out.println("无法审批");
}
}
}
class XiaoZhang extends Handler {
@Override
public void HandleRequest(int request) {
if (request <= 30){
System.out.println("校长审批通过");
}else if (next != null){
next.HandleRequest(request);
}else {
System.out.println("无法审批");
}
}
}