码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA设计模式之责任链模式

时间:2017-11-05 23:33:05      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:pre   handler   客户端   blog   font   java设计   turn   定义   logs   

一、什么是责任链模式?

  责任链模式是指多个对象,能够依次的对传递过来的信息进行处理,并传递给下一个对象,直到处理完毕。

二、责任链有哪些角色?

  1. 抽象处理者角色:定义一个处理请求的接口,如果需要,接口可以定义出一个方法来设定和返回下一个处理者
  2. 具体处理者角色:具体处理者接收到请求后,可以选择将请求处理掉,或者将请求传递给下一个处理者

三、代码详解:

  抽象类:  

public abstract class Handler {
    /**
     * 下一个处理者
     */
    private Handler target;

    public Handler getTarget() {
        return target;
    }

    public void setTarget(Handler target) {
        this.target = target;
    }
    
    public abstract void process();

}

  具体实现者A:

public class Handler_A extends Handler {

    @Override
    public void process() {
        Handler handler = getTarget();
        if (handler == null) {
            System.out.println("A处理后, 直接返回结果");
            return;
        } else {
            System.out.println("A处理后,返回个下一个handler继续处理");
            handler.process();
        }
    }

}

  具体实现者B:

public class Handler_B extends Handler{

    @Override
    public void process() {
        Handler handler = getTarget();
        if (handler == null) {
            System.out.println("B处理后, 直接返回结果");
            return;
        } else {
            System.out.println("B处理后,返回个下一个handler继续处理");
            handler.process();
        }
    }

}

  客户端:

public class Client {

    public static void main(String[] args) {
        
        Handler handlerA = new Handler_A();
        Handler handlerB = new Handler_B();
        handlerA.setTarget(handlerB);
        
        handlerA.process();
        
    }
    
}

结果打印: 

A处理后,返回个下一个handler继续处理
B处理后, 直接返回结果

 

  

JAVA设计模式之责任链模式

标签:pre   handler   客户端   blog   font   java设计   turn   定义   logs   

原文地址:http://www.cnblogs.com/lfdingye/p/7789061.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!