java设计模式具体应用-(责任链模式)

废话不多说,直接上代码

public void contextLoads() throws Exception {
          
   

    ProjectAudit projectAudit = new ProjectAudit();   //创建链表
    FinanceAudit financeAudit = new FinanceAudit();
    BossAudit bossAudit = new BossAudit();
    projectAudit.setSuccessor(financeAudit);
    financeAudit.setSuccessor(bossAudit);


    projectAudit.auditHandler();  //由链表头开始遍历
}

public abstract class Audit{
          
      //抽象类
    protected Audit successor;   //可被继承者使用
    public void setSuccessor(Audit obj){
          
    successor=obj;}
    public Audit getSuccessor(){
          
   
        return this.successor;
    }
    public abstract void auditHandler();  //抽象方法
}

public class ProjectAudit extends Audit{
          
   
    @Override
    public void auditHandler() {
          
   
        if(getSuccessor()!=null){
          
   
            System.out.println("pass ProjectAudit to successor");
            getSuccessor().auditHandler();
        }else{
          
   
            System.out.println("ProjectAudit");
        }
    }
}

public class FinanceAudit extends Audit{
          
   
    @Override
    public void auditHandler() {
          
   
        if(getSuccessor()!=null){
          
   
            System.out.println("pass FinanceAudit to successor");
            getSuccessor().auditHandler();
        }else{
          
   
            System.out.println("FinanceAudit");
        }
    }
}

public class BossAudit extends Audit{
          
   
    @Override
    public void auditHandler() {
          
   
        if(getSuccessor()!=null){
          
   
            System.out.println("pass BossAudit to successor");
            getSuccessor().auditHandler();
        }else{
          
   
            System.out.println("BossAudit");
        }
    }
}
经验分享 程序员 微信小程序 职场和发展