public abstract class Leader { private Leader next; public void setNext(Leader next) { this.next=next; } public Leader getNext() { return next; } //处置惩罚哀求的方法 public abstract void handleRequest(int LeaveDays);}
部分负责人实现类
public class DepartmentsLeade extends Leader { @Override public void handleRequest(int leaveDays) { if (leaveDays <=2) { System.out.println("部分领导允许您请假" + leaveDays + "天。"); } else { if(null != getNext()) { getNext().handleRequest(leaveDays); } else { System.out.println("请假天数太多,没有人允许该假条!"); } } }}
副司理实现类
public class DeputyManagerLeader extends Leader { @Override public void handleRequest(int leaveDays) { if (leaveDays <=4) { System.out.println("副司理领导允许您请假" + leaveDays + "天。"); } else { if (getNext() != null) { getNext().handleRequest(leaveDays); } else { System.out.println("请假天数太多,没有人允许该假条!"); } } }}public class ManagerLeader extends Leader { @Override public void handleRequest(int leaveDays) { if (leaveDays <=6) { System.out.println("司理领导允许您请假" + leaveDays + "天。"); } else { if(null != getNext()) { getNext().handleRequest(leaveDays); } else { System.out.println("请假天数太多,没有人允许该假条!"); } } }}
测试类
public class Test {public static void main(String[] args) { Leader leader1 = new DepartmentsLeade(); Leader leader2 = new DeputyManagerLeader(); Leader leader3 = new ManagerLeader(); leader1.setNext(leader2); leader2.setNext(leader3); leader1.handleRequest(1);}}