• 设计模式开始--职责链模式


    职责链的模式

    一、作用

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

    二、类图

    三、实现

    (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
  • 相关阅读:
    Codeforces Round #279 (Div. 2) C. Hacking Cypher 机智的前缀和处理
    Codeforces Round #279 (Div. 2) A. Team Olympiad 水题
    Codeforces Round #279 (Div. 2) B
    利用Hog特征和SVM分类器进行行人检测
    opencv 支持向量机SVM分类器
    opencv hog算子
    NOIP 2008 传纸条 NOIP 2000 方块取数 多线程DP
    POJ 1654 Area 计算几何
    hihocoder #1015 KMP
    HDU 1722 Cake 数学题
  • 原文地址:https://www.cnblogs.com/sunshisonghit/p/4388517.html
Copyright © 2020-2023  润新知