zoukankan      html  css  js  c++  java
  • 设计模式开始--职责链模式

    职责链的模式

    一、作用

    多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将对象连成一条链,并沿着这条链传递该请求,直到有一个对象可以处理它

    二、类图

    三、实现

    (1)定义Handle

    public abstract class Handle {
        protected Handle successor;
        public void setSeccessor(Handle successor)
        {
            this.successor = successor;
        }
        public abstract void handleRequest(int request);
    }
    public class ConcreteHandleOne extends Handle {
        @Override
        public void handleRequest(int request) {
            if(request >= 0 && request < 10)
            {
                System.out.println("One 处理请求"+request);
            }
            else if(successor != null)
            {
                successor.handleRequest(request);
            }
        }
    }
    public class ConcreteHandleTwo extends Handle {
        @Override
        public void handleRequest(int request) {
            if(request >= 10 && request < 20)
            {
                System.out.println("Two 处理请求"+request);
            }
            else if(successor != null)
            {
                successor.handleRequest(request);
            }
        }
    }
    public class ConcreteHandleThree extends Handle {
        @Override
        public void handleRequest(int request) {
            if(request > 20) 
            {
                System.out.println("Three 处理请求"+request);
            }
            else if(successor != null)
            {
                successor.handleRequest(request);
            }
        }
    }
    View Code

    (2)Client测试类

    public class Client {
        public static void main(String[] args) {
            Handle h1 = new ConcreteHandleOne();
            Handle h2 = new ConcreteHandleTwo();
            Handle h3 = new ConcreteHandleThree();
            h1.successor = h2;
            h2.successor = h3;
            int request = 14;
            h1.handleRequest(request);
        }
    }
    View Code
  • 相关阅读:
    2.22
    LG P7077 函数调用
    2020/10/30 模拟赛 序列
    2020/10/27 模拟赛 数列
    2020/10/23 模拟赛 chip
    2020/10/23 模拟赛 escape
    2020/10/23 模拟赛 center
    LOJ#6581. 「ICPC World Finals 2019」断头路探测者
    LG P1587 [NOI2016]循环之美
    LG P4156 [WC2016]论战捆竹竿
  • 原文地址:https://www.cnblogs.com/sunshisonghit/p/4388517.html
Copyright © 2011-2022 走看看