责任链模式详解

2019/01/15 19:56
阅读数 25

定义:责任链模式是一条用户定义的链条,链条上每个节点都有自己的责任,当有任务进入时,从第一个节点开始处理,如果处理成功,则终止往下传递任务,否则将会把任务传递给下一个节点,依次类推,直至最后一个节点。

 

一起来看一个小例子:

BaseCase:

public interface BaseCase {
    void doSomeThing(String json,CaseChain baseCase);
}

CaseChain:

public class CaseChain {
    private List<BaseCase>mBaseCaseList = new ArrayList<>();
    private int index = 0;
    public CaseChain addCase(BaseCase baseCase){
        mBaseCaseList.add(baseCase);
        return this;
    }
    public void start(String json){
        if (index == mBaseCaseList.size()){
            return;
        }
        BaseCase baseCase = mBaseCaseList.get(index);
        index++;
        baseCase.doSomeThing(json,this);
    }
}

OneCase:

public class OneCase implements BaseCase{

    @Override
    public void doSomeThing(String json,CaseChain CaseChain) {
        if (json.equals("json")){
            System.out.println("1处理好了");
            return;
        }
        CaseChain.start(json);
    }
}

TwoCase:

public class TwoCase implements BaseCase{

    @Override
    public void doSomeThing(String json,CaseChain CaseChain) {
        if (json.equals("xml")){
            System.out.println("2处理好了");
            return;
        }
        CaseChain.start(json);
    }
}

Test:

public class Test {
    public static void main(String[] args){
        CaseChain caseChain = new CaseChain();
        caseChain.addCase(new OneCase())
                .addCase(new TwoCase())
                .start("xml");
    }
}

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部