危险网站怎么做二维码,网页特效,中建材建设有限公司网站,杭州seo关键词优化公司需求背景#xff1a; 请你设计一个员工休假审批流程#xff0c;当员工的休假天数1时#xff0c;由直接领导审批#xff0c;休假天数2时#xff0c;分别由直接领导、一级部门领导审批#xff0c;休假天数3时#xff0c;分别由直接领导、一级部门领导、分管领…需求背景 请你设计一个员工休假审批流程当员工的休假天数1时由直接领导审批休假天数2时分别由直接领导、一级部门领导审批休假天数3时分别由直接领导、一级部门领导、分管领导审批。 不使用责任链
package com.shejimoshi;public class Main {public static void main(String[] args) {RequestParam requestParam new RequestParam(MJ, 3);if (requestParam.getTime()1){System.out.println(领导审批);if (requestParam.getTime()2){System.out.println(一级部门领导审批);if (requestParam.getTime()3){System.out.println(分管领导审批);}}}}
}使用责任链各司其职
抽象审批类AuditHandler,包含下一个处理者的引用nextAuditHandler,通过setNextAuditHandler方法进行注入,从而形成一条链抽象audit方法由各个处理者的实现类去实现各自的审批逻辑。 package com.shejimoshi;public abstract class AuditHandler {protected AuditHandler nextAuditHandler;public void setNextAuditHandler(AuditHandler nextAuditHandler) {this.nextAuditHandler nextAuditHandler;}public abstract void audit(RequestParam requestParam);
}
class DirectLeaderAuditHandler extends AuditHandler{Overridepublic void audit(RequestParam requestParam) {if (requestParam.getTime()1){System.out.println(班主任审批通过);}if (nextAuditHandler ! null){nextAuditHandler.audit(requestParam);}else {System.out.println(审批完成);}}
}
class FirstLeaderAuditHandler extends AuditHandler{Overridepublic void audit(RequestParam requestParam) {if (requestParam.getTime()2){System.out.println(学院审批通过);}if (nextAuditHandler ! null){nextAuditHandler.audit(requestParam);}else {System.out.println(审批完成);}}
}
class FenGuanLeaderAuditHandler extends AuditHandler{Overridepublic void audit(RequestParam requestParam) {if (requestParam.getTime()3){System.out.println(学校审批通过);}if (nextAuditHandler ! null){nextAuditHandler.audit(requestParam);}else {System.out.println(审批完成);}}
}
class Test{public static void main(String[] args) {AuditHandler handler new DirectLeaderAuditHandler();FirstLeaderAuditHandler firstLeaderAuditHandler new FirstLeaderAuditHandler();FenGuanLeaderAuditHandler fenGuanLeaderAuditHandler new FenGuanLeaderAuditHandler();handler.setNextAuditHandler(firstLeaderAuditHandler);firstLeaderAuditHandler.setNextAuditHandler(fenGuanLeaderAuditHandler);RequestParam requestParam new RequestParam(MJ, 2);handler.audit(requestParam);}
}摘取
面试官什么是责任链模式_说一说责任链模式面试-CSDN博客