zoukankan      html  css  js  c++  java
  • 第二十四章 职责链模式

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

    注意:一个请求极有可能到了链末都得不到处理,或者因为没有正确配置而得不到处理。

    /**
     * Created by hero on 16-4-7.
     */
    public abstract class Handler {
        protected Handler successor;
    
        public void setSuccessor(Handler successor) {
            this.successor = successor;
        }
    
        public abstract void handleRequest(int request);
    }
    /**
     * Created by hero on 16-4-7.
     */
    public class ConcreteHandler1 extends Handler {
        @Override
        public void handleRequest(int request) {
            if (request < 10) {
                System.out.println("handled by 1");
            } else if (successor != null) {
                successor.handleRequest(request);
            }
        }
    }
    /**
     * Created by hero on 16-4-7.
     */
    public class ConcreteHandler2 extends Handler {
        @Override
        public void handleRequest(int request) {
            if (request < 20) {
                System.out.println("handled by 2");
            } else if (successor != null) {
                successor.handleRequest(request);
            } else {
                System.out.println("no handler");
            }
        }
    }
    public class Main {
    
        public static void main(String[] args) {
            ConcreteHandler1 concreteHandler1 = new ConcreteHandler1();
            ConcreteHandler2 concreteHandler2 = new ConcreteHandler2();
            concreteHandler1.setSuccessor(concreteHandler2);
            int[] requests = {10, 2, 22, 33, 7, 5};
            for (int request : requests)
                concreteHandler1.handleRequest(request);
        }
    }
  • 相关阅读:
    Python-装饰器进阶
    JavaScript-CasperJs使用教程
    Python-第三方库requests详解
    PHP-PHP程序员的技术成长规划(By黑夜路人)
    Bootstrap-学习系列
    CSS-常用媒体查询
    Git-随笔
    工具-各种开源
    PHP-PHP5.3及以上版本中检查json格式的方法
    VIM-技巧
  • 原文地址:https://www.cnblogs.com/littlehoom/p/5366130.html
Copyright © 2011-2022 走看看