<>强文章首发强>:
行为型模式:责任链模式
十一大行为型模式之四:责任链模式。
引用>简介
<强>姓名强>:责任链模式
<强>英文名强>:
责任链模式<强>价值观强>:责任归我
<强>个人介绍强>:
避免耦合发送方的请求接收方通过给超过>公共类ChainOfResponsibilityTest { 公共静态void main (String [] args) { 受访者被采访者=new应聘者(“小明”); 项目组长项目组长=new项目组长(“老刚”); DepartMentManager DepartMentManager=new DepartMentManager(“老孙”); 人力资源人力资源=new人力资源(“老刘”);//设置面试流程 teamLeader.setNextInterviewer (departMentManager); departMentManager.setNextInterviewer(人力资源);//开始面试 teamLeader.handleInterview(应聘者); } }/* * *面试者 */类被采访者{ 私人字符串名称; 私人布尔teamLeaderOpinion; 私人布尔departMentManagerOpinion; 私人布尔hrOpinion; 公众被采访者(字符串名称){ this.name=名称; } 公共字符串getName () { 返回名称; } 公共空间setName(字符串名称){ this.name=名称; } 公共布尔isTeamLeaderOpinion () { 返回teamLeaderOpinion; } 公共空间setTeamLeaderOpinion(布尔teamLeaderOpinion) { 这一点。teamLeaderOpinion=teamLeaderOpinion; } 公共布尔isDepartMentManagerOpinion () { 返回departMentManagerOpinion; } 公共空间setDepartMentManagerOpinion(布尔departMentManagerOpinion) { this.departMentManagerOpinion=departMentManagerOpinion; } 公共布尔isHrOpinion () { 返回hrOpinion; } 公共空间setHrOpinion(布尔hrOpinion) { 这一点。hrOpinion=hrOpinion; } }/* * *面试官 */抽象类官{ 保护字符串名称; 保护官nextInterviewer; 公共官(字符串名称){ this.name=名称; } 公共官setNextInterviewer(官nextInterviewer) { 这一点。nextInterviewer=nextInterviewer; 返回this.nextInterviewer; } 公共抽象空白handleInterview(应聘者面试者); }/* * *组长 */类项目组长延伸官{ 公共项目组长(字符串名称){ 超级(名称); } @Override 公共空间handleInterview(应聘者被采访者){ system . out。println(“组长(“+ this.name +”)面试(“+ interviewee.getName() +”)同学”); 被采访者。.nextBoolean setTeamLeaderOpinion(新随机()()); 如果(interviewee.isTeamLeaderOpinion ()) { system . out。println (“[”+ interviewee.getName() +”)同学组长轮面试通过”); this.nextInterviewer.handleInterview(应聘者); 其他}{ system . out。println (“[”+ interviewee.getName() +”)同学组长轮面试不通过”); } } }/* * *部门经理 */类DepartMentManager延伸官{ 公共DepartMentManager(字符串名称){ 超级(名称); } @Override 公共空间handleInterview(应聘者被采访者){ system . out。println(“部门经理(“+ this.name +”)面试(“+ interviewee.getName() +”)同学”); 被采访者。.nextBoolean setDepartMentManagerOpinion(新随机()()); 如果(interviewee.isDepartMentManagerOpinion ()) { system . out。println (“[”+ interviewee.getName() +”)同学部门经理轮面试通过”); this.nextInterviewer.handleInterview(应聘者); 其他}{ system . out。println (“[”+ interviewee.getName() +”)同学部门经理轮面试不通过”); } } }/* * *人力资源 */类人力资源官{延伸 公共人力资源(字符串名称){ 超级(名称); } @Override 公共空间handleInterview(应聘者被采访者){ system . out。println(“人力资源(“+ this.name +”)面试(“+ interviewee.getName() +”)同学”); 被采访者。.nextBoolean setHrOpinion(新随机()()); 如果(interviewee.isHrOpinion ()) { system . out。println (“[”+ interviewee.getName() +”)同学人力资源轮面试通过,恭喜拿到提供“); 其他}{ system . out。println (“[”+ interviewee.getName() +”)同学人力资源轮面试不通过”); } } } 打印结果: 组长(老刚]面试(小明)同学 (小明)同学组长轮面试通过 部门经理[老孙]面试(小明)同学 (小明)同学部门经理轮面试通过 人力资源(老刘]面试(小明)同学 (小明)同学人力资源轮面试通过,恭喜拿到提供行为型模式:责任链模式