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);
        }
    }
  • 相关阅读:
    vue实例讲解之vuex的使用
    实例讲解webpack的基本使用第一篇
    如何写一个jquery插件
    《改变你一生的108个心理学法则》读书笔记
    用css绘制各种图形
    关于js浮点数计算精度不准确问题的解决办法
    非常有用的css使用总结
    网页meta标签总结
    Object.defineProperty()方法的用法详解
    js中set和get的用法
  • 原文地址:https://www.cnblogs.com/littlehoom/p/5366130.html
Copyright © 2011-2022 走看看