zoukankan      html  css  js  c++  java
  • 入门设计模式之责任链模式

    学习更多设计模式请参考:入门设计模式之汇总篇 

    责任链模式:很多对象由每一个对象对其下家的引用而连接起来行成的一条链。

    其实责任链模式一直在我们的身边。某一天,董事长有个想法,他吩咐给了经理,经理吩咐给了组长,组长分配给了你我。这时候我们发现,我们没有下级了呀,咋办,那就干呗。

    上方这个任务分配的过程就是责任链模式,一个事件会一直向下层传递,董事长并不关心是谁解决的这个问题,对他来说只要问题解决了就行。

    • Handle:抽象处理者,可理解为抽象的员工(经理组长普通程序员等都是继承了员工)
    • Handle:具体处理者:具体做事的人(具体某一个经理组长普通程序员等)
    • Client:客户端

    来看一下代码实现:

    public abstract class Handle {
        protected Handle next;
        public abstract void handleRequest();
    
        public void setNext(Handle next){
            this.next=next;
        }
    }
    
    public class HandleImpl extends Handle {
        @Override
        public void handleRequest() {
            if(next!=null){
                System.out.println("调用下级处理");
                next.handleRequest();
            }else{
                System.out.println("请求处理中。。。");
            }
        }
    }
    
    public class Client {
        public static void main(String args[]){
                Handle handle1=new HandleImpl();
                Handle handle2=new HandleImpl();
                Handle handle3=new HandleImpl();
                handle1.setNext(handle2);
                handle2.setNext(handle3);
                handle1.handleRequest();
        }
    }
    

    可以看到上方代码运行过程就像文章开始时我们所举得例子,只要它存在下级就会把请求交给下级去处理,这就是典型的责任链模式

    本文出自https://zhixiang.org.cn/#/blog/read/21a887cf-d97a-4801-aecb-bc9578a2f1e1,转载请保留。

  • 相关阅读:
    小丑火棘
    凤尾竹
    红王子锦带
    吊兰
    清香木
    鸢尾
    夏鹃
    牡丹吊兰
    美人蕉
    粉花绣线菊
  • 原文地址:https://www.cnblogs.com/zhixiang-org-cn/p/9256044.html
Copyright © 2011-2022 走看看