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");
        }
    }
  • 相关阅读:
    eclipse的maven配置及本地仓库配置
    协方差矩阵计算方法
    马氏距离
    Python中的相对路径
    Pytorch中的LSTM和LSTMCell
    The Unreasonable Effectiveness of Recurrent Neural Networks
    RNN的灵活性
    LSTM和GRU
    Nesterov Accelerated Gradient
    Wasserstein GAN最新进展:从weight clipping到gradient penalty,更加先进的Lipschitz限制手法
  • 原文地址:https://www.cnblogs.com/sharkchao/p/10273999.html
Copyright © 2011-2022 走看看