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处理请求。
  • 相关阅读:
    java 基础知识
    winform判断一个事件是否已经绑定了事件处理函数
    优质文章
    优质博客
    缩略图的创建
    记录一次错误处理 (xml序列化和反序列化相关)
    文件同步软件
    博客园优质博主集锦
    不错的博文集锦
    cesiumjs
  • 原文地址:https://www.cnblogs.com/lycsmzl/p/13402310.html
Copyright © 2011-2022 走看看