行为型模式:责任链模式

  

<>强文章首发:
行为型模式:责任链模式

  

行为型模式:责任链模式

  
  

十一大行为型模式之四:责任链模式。

     

简介

  

<强>姓名:责任链模式

  

<强>英文名:

责任链模式   

<强>价值观:责任归我

  

<强>个人介绍:
避免耦合发送方的请求接收方通过给超过>公共类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() +”)同学人力资源轮面试不通过”);   }   }   }      打印结果:   组长(老刚]面试(小明)同学   (小明)同学组长轮面试通过   部门经理[老孙]面试(小明)同学   (小明)同学部门经理轮面试通过   人力资源(老刘]面试(小明)同学   (小明)同学人力资源轮面试通过,恭喜拿到提供

行为型模式:责任链模式