zoukankan      html  css  js  c++  java
  • 责任链模式详解

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

    一起来看一个小例子:

    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");
        }
    }
  • 相关阅读:
    函数
    文件
    字符编码
    卸载python
    mysql修改密码
    playbook
    expect无交互操作
    用户认证
    配置并访问NFS共享
    配置Multipath多路径环境
  • 原文地址:https://www.cnblogs.com/sharkchao/p/10273999.html
Copyright © 2011-2022 走看看