设计模式第十六篇-行为型模式【责任链模式】

设计模式案例分析-github

一、什么是责任链模式?

定义:   在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在    这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上      的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和      分配责任。

通俗: 就是处理对象持有下一个处理对象的引用,已形成一条链,由链中的某一个节点对象处理

二、角色?

1) 抽象处理者(Handler):  定义出一个处理请求的接口。如果需要,接口可以定义 出一个方法以设定和返回对下家的引用。这个角色通常由一个Java抽象类或者Java接口实现。

2) 具体处理者(ConcreteHandler):  具体处理者接到请求后,可以选择将请求处理掉,或者将请求传给下家。由于具体处理者持有对下家的引用,因此,如果需要,具体处理者可以访问下家。

三、实现案例?

public abstract Class Handler{  

        private Handler nextHandler;

        public Handler(Handler nextHandle) {

                this.nextHandler = nextHandler;

        }

        public abstrace void handlerRequest(Object param);

        public Handler getNextHandler() {

                return nextHandler;

         }

  }

public class   ConcreteHandler extends Handler{

        public ConcreteHandler(Handler nextHandler){

                super(nextHandler);

       }


       public void handlerRequest(Object param) {

            // 在这里可以根据具体的逻辑,来判断请求是否该handler处理,还是交给下一个handler处理

             if () {

                 handlerRequest(param);

            } else {

                getNextHandler().handlerRequest();

            }

      }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,993评论 18 399
  • 【学习难度:★★★☆☆,使用频率:★★☆☆☆】直接出处:职责链模式梳理和学习:https://github.com...
    BruceOuyang阅读 4,026评论 0 0
  • 尊严掉了在地上 拾不起来 内心有一万个草泥马在奔腾 我低下头 看见尊严在地上打滚 像小丑 好想去狠踩上一脚 告诉自...
    上官楠阅读 1,449评论 4 3
  • 01 自从有了电脑,电视基本就成了摆设了,昨晚实在无聊打开了电视“深夜中不断的惨嚎,笼罩在梦中的阴霾,这一...
    雪玲玉阅读 1,937评论 0 3
  • 一、 这个话题对我来说有点大了。 我既不是什么心理学家、社会学家、历史学家,也没做过什么深入调研,也没查阅过什么书...
    时光勿念阅读 2,880评论 0 2