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

设计模式案例分析-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();

            }

      }

}

你可能感兴趣的:(设计模式第十六篇-行为型模式【责任链模式】)