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

    案例分析

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

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

    什么是责任链模式?

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

    前驱

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

    后继

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

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



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

    责任链模式-解耦

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

    责任链模式的应用

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

    慎重

      责任链模式在实际开发中很常见,尤其是框架。但是具体使用责任链模式的时候,应该做好取舍,慎重考虑是否使用,因为责任链模式会先创建出很多的链上的接收者,会消耗资源,占用内存,降低性能。(Java开发团队起初开发AWT的时候使用的就是责任链模式,后来因为性能问题,转为使用观察者模式)
        
  • 相关阅读:
    yum安装8.0mysql数据库
    free命令详细介绍
    linux 自定义美女欢迎界面
    shll脚本常用格式和规则使用
    liunx常用知识基本命令大全
    liunx系统二进制包安装编译mysql数据库
    CentOS7更改网卡名称
    老男孩教育100道面试题
    非关系型数据库(NoSQL)
    iptables
  • 原文地址:https://www.cnblogs.com/lyc-smile/p/6193221.html
Copyright © 2011-2022 走看看