设计模式之责任链模式

    xiaoxiao2021-03-25  147

    1)责任链模式:使多个对象有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。   将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。

    2)

    public abstract class Handler { private Handler nextHandler; protected abstract Level getHandlerLevel(); protected abstract Response echo(Request request); // 每个处理者都必须对请求做出处理 public final Response handleMessage(Request request){ Response response = null; // 判断是否是自己的处理级别 if(this.getHandlerLevel().equals(request.getRequestLevel())){ response = this.echo(request); }else { if(this.nextHandler != null){ this.nextHandler.handleMessage(request); }else{ System.out.println("没有适当处理!"); } } } }

    3)类图

     

    4)有点:责任链将请求和处理分开。请求不用知道是谁处理,处理者可以不用知道请求的全貌。

    5)缺点:A、性能问题,每个请求从链头遍历到链尾,特别是在链比较长的时候,性能是一个非常大的问题。

                      B、调试不方便,特别是链条比较长,环节比较多的场合,由于采用类似的递归的方式,调试的时候逻辑可能比较复杂。

    转载请注明原文地址: https://ju.6miu.com/read-3119.html

    最新回复(0)