责任链模式详解

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

 

一起来看一个小例子:

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");
    }
}

 

转载于:https://www.cnblogs.com/sharkchao/p/10273999.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值