博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA设计模式之责任链模式
阅读量:5942 次
发布时间:2019-06-19

本文共 1486 字,大约阅读时间需要 4 分钟。

一、什么是责任链模式?

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

二、责任链有哪些角色?

  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处理后, 直接返回结果

 

  

转载于:https://www.cnblogs.com/lfdingye/p/7789061.html

你可能感兴趣的文章
提高项目开发效率之--会议室墙的进度表
查看>>
weave实现宿主机之间的容器互联
查看>>
洛谷——P2660 zzc 种田
查看>>
配置DAC
查看>>
Linux下安装rlwrap
查看>>
我的友情链接
查看>>
s3cmd安装与使用
查看>>
我的友情链接
查看>>
华为eNSP和SecureCRT连接乱码问题
查看>>
dedecms 页面无刷新调取
查看>>
电脑开机老是显示explorer.exe文件损坏
查看>>
Onenote 2010 多PC端笔记同步
查看>>
数据结构概览之第八章排序
查看>>
android input设备event处理以及hotplug检测
查看>>
广播搜寻服务器的动态IP
查看>>
centos6 64位服务器的基本初始化
查看>>
我的友情链接
查看>>
windows8不能更新?
查看>>
SQL*PLUS的异常处理-SP2-0606
查看>>
[转] SAAS, PAAS, IAAS
查看>>