Chain責(zé)任鏈模式

責(zé)任鏈模式 核心設(shè)計類 IBaseTask :

public abstract class IBaseTask {
    
    boolean isTask;
    
    IBaseTask iNextTask;
    
    public IBaseTask(boolean isTask){
        this.isTask = isTask; 
    }
    
    public void setNextTask(IBaseTask iNextTask) {
        this.iNextTask = iNextTask;
    }
    
    public void action() {
        if(isTask) {
            doAction();
        } else if(iNextTask!=null) {
            iNextTask.action();
        }
        
    }
    
    public abstract void doAction();
}
public class Task1 extends IBaseTask{

    public Task1(boolean isTask) {
        super(isTask); 
    }

    @Override
    public void doAction() {

         System.out.println("Task1 執(zhí)行了");
    }

}
public class Task2 extends IBaseTask {

    public Task2(boolean isTask) {
        super(isTask); 
    }

    @Override
    public void doAction() {
         System.out.println("Task2 執(zhí)行了");
    }

}
public class Task3 extends IBaseTask {
    
 

    public Task3(boolean isTask) {
        super(isTask); 
    }

    @Override
    public void doAction() {

         System.out.println("Task3 執(zhí)行了");
    }

}

測試:

    public static void main(String[] args) {
         Task1 task1 = new  Task1(false);
         Task2 task2 = new  Task2(true);
         Task3 task3 = new  Task3(true);
         
         task1.setNextTask(task2);
         task2.setNextTask(task3);
         
         task1.action();
    }

執(zhí)行結(jié)果:

Task2 執(zhí)行了
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容