zoukankan      html  css  js  c++  java
  • 【设计模式】- 责任链篇

    简介

    • 责任链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求组的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

    • 代码:

    //定义一个base处理者
    public abstract class Handler {
        protected Handler handler;
    
        public void setHandler(Handler handler) {
            this.handler = handler;
        }
    
        public abstract void handleRequest();
    }
    
    //定义处理者1
    public class FirstHandler extends Handler {
        @Override
        public void handleRequest() {
            if (true) {
                doSomething();
            } else if (Objects.nonNull(handler)) {
                handler.handleRequest();
            }
        }
    }
    
    //定义处理者2
    public class SecondHandler extends Handler {
        @Override
        public void handleRequest() {
            if (true) {
                doSomething();
            } else if (Objects.nonNull(handler)) {
                handler.handleRequest();
            }
        }
    }
    
    //定义处理者3
    public class ThirdHandler extends Handler {
        @Override
        public void handleRequest() {
            if (true) {
                doSomething();
            } else if (Objects.nonNull(handler)) {
                handler.handleRequest();
            }
        }
    }
    
    //入口处理方法
    public void method(){
        //定义责任链条
        Handler firstHandler = new FirstHandler();
        Handler secondHandler = new SecondHandler();
        Handler thirdHandler = new ThirdHandler();
        firstHandler.setHandler(secondHandler);
        secondHandler.setHandler(thirdHandler);
        
        //传递任务
        firstHandler.handleRequest();
    }
    
    • 通过上述代码,可以看出,定义了责任链条之后,那么就会给满足条件的handler处理请求。
  • 相关阅读:
    python-局部变量与全局变量作用域
    python-函数(上):函数返回值、函数调用、前向引用
    python-文件读写
    python-输入和输出
    python-模块介绍及os模块的方法
    python-continue和break的区别
    python-for循环
    python-while循环
    python-三元运算和if...else
    python-数据类型(下) :byte、列表、元组、集合
  • 原文地址:https://www.cnblogs.com/lycsmzl/p/13402310.html
Copyright © 2011-2022 走看看