public class ResponsibilityDemo { public static void main(String[] args) { HeaderManHandler headerManHandler = new HeaderManHandler(); ChiefHandler chiefHandler = new ChiefHandler(); GMHandler gmHandler = new GMHandler(); chiefHandler.setNextHandler(gmHandler); headerManHandler.setNextHandler(chiefHandler); int i = new Random().nextInt(80); System.out.printf("请假天数:%d", i); System.out.println(); headerManHandler.handle(i); } } interface AskForLeaveHandler { void setNextHandler(AskForLeaveHandler nextHandler); boolean handle(int days); } class HeaderManHandler implements AskForLeaveHandler { private AskForLeaveHandler nextHandler; @Override public void setNextHandler(AskForLeaveHandler nextHandler) { this.nextHandler = nextHandler; } @Override public boolean handle(int days) { if (days < 10) { System.out.println("组长批复请假申请"); return true; } return nextHandler.handle(days); } } class ChiefHandler implements AskForLeaveHandler { private AskForLeaveHandler nextHandler; @Override public void setNextHandler(AskForLeaveHandler nextHandler) { this.nextHandler = nextHandler; } @Override public boolean handle(int days) { if (days < 30) { System.out.println("总监批复请假申请"); return true; } return nextHandler.handle(days); } } class GMHandler implements AskForLeaveHandler { @Override public void setNextHandler(AskForLeaveHandler nextHandler) { System.out.println("没有下一层级了"); } @Override public boolean handle(int days) { if (days < 60) { System.out.println("总监批复请假申请"); return true; } System.out.println("请假不能超过60天"); return false; } }
设计模式之责任链模式
最新推荐文章于 2024-09-10 10:21:38 发布