zoukankan      html  css  js  c++  java
  • 责任链模式

    案例分析

         责任链模式可以通过形象的生活例子进行解读,不管是前端攻城狮还是后端攻城狮,责任链的思想都有所体现(框架之中)   

    击鼓传花
        老太和一群姑娘准备玩击鼓传花的游戏,于是找来了一个击鼓的人,游戏规则就是:随着鼓点声音,从她们之间传递一束花,鼓声落,传花停。花最后传递到那个姑娘的手中,那么就由她来给大家即兴赋诗一首。
        那么击鼓的人并不需要知道玩游戏的这些人是谁,只需要击鼓即可,相当于客户端发送一个请求,请求在这些姑娘之间传递,总会有一个姑娘最后接到花,给大家赋诗。(一层层的传递请求,总会有一层来对请求作出响应
        

    什么是责任链模式?

      将接受者对象连成一条链,并在改链上传递请求,直到有一个接受者对象处理它,通过让更多对象有机会处理请求,避免了请求发送者和接受者之间的耦合。
     

    前驱

        中序遍历下某结点X的前驱就是所有(结点值)小于X的结点中最大的那个

    后继

         给定一个二叉查找树中的结点,有时候要求找出在中序遍历顺序下它的后继。如果所有的关键字均不同,则某一结X点的后继就是所有(结点值)大于X的结点中最小的那个。
     

    1、OO的一些原则:
    2、如 单一职责原则 : 设置一个接口时,应该只将与这个接口业务相关的方法放在接口之中。
    3、工场方法的实质在用返回返回的是一个接口,而不是一个实例对象。
    4、用到责任链,总会用到工厂



    将指定的方法移到某个文件中的快捷键操作方式:
    选中方法名——Refactor——Move——选择需要移动到的目标文件——确定
     

    责任链模式-解耦

      发出请求的客户端并不知道链上的哪一个接收者会处理这个请求,从而实现了客户端和接受者之间的解耦。

    责任链模式的应用

       图片不显示
       Java中的异常抛出,一层一层的找到对应的异常类型进行抛出对应的异常
     
        JavaScript中的事件模型
        Web中的过滤器

    慎重

      责任链模式在实际开发中很常见,尤其是框架。但是具体使用责任链模式的时候,应该做好取舍,慎重考虑是否使用,因为责任链模式会先创建出很多的链上的接收者,会消耗资源,占用内存,降低性能。(Java开发团队起初开发AWT的时候使用的就是责任链模式,后来因为性能问题,转为使用观察者模式)
        
  • 相关阅读:
    jmeter解决乱码
    RedisTemplate方法详解
    linux centos7忘记密码?
    redis config 详解
    Spring Security使用详解(基本用法 )
    Oauth介绍
    springSecurity+Oauth2.0之授权模式(客户端、密码模式)
    springCloud Sleuth分布式请求链路跟踪
    spring cloud Stream消息驱动
    HttpServletResponse
  • 原文地址:https://www.cnblogs.com/lyc-smile/p/6193221.html
Copyright © 2011-2022 走看看