前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java设计模式之责任链模式

java设计模式之责任链模式

作者头像
小小鱼儿小小林
发布2020-12-01 10:35:47
3180
发布2020-12-01 10:35:47
举报


一、责任链模式(Chain of Responsibility Pattern)

有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求,所以,责任链模式可以实现,在隐瞒客户端的情况下,对系统进行动态的调整。这就有点类似我们在java程序上的递归方法 (web应该中学习到的Filter其实就是一个责任链设计模式)

二、demo:

定义一个接口

/**
 * Created by yjl on 2020/11/29.
* 责任链模式:博文介绍链接:https://blog.csdn.net/qq_27471405/article/details/110340571
* 公众号:灵儿的笔记
 */
public interface Filter {

    public void handler();
}

定义一个实现类,实现类里实现调用的传递

/**
 * Created by yjl on 2020/11/29.
 * 责任链模式:博文介绍链接:https://blog.csdn.net/qq_27471405/article/details/110340571
 */
public class AFilter implements Filter{
    private String name;
    private Filter filter;

    public AFilter() {
    }

    public AFilter(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Filter getFilter() {
        return filter;
    }

    public void setFilter(Filter filter) {
        this.filter = filter;
    }

    @Override
    public void handler() {
        System.out.println("name="+name);
        if(getFilter()!=null){
            getFilter().handler();

        }

    }
}

最后,在测试类上调用

/**
 * Created by yjl on 2020/11/29.
 * 责任链模式:博文介绍链接:https://blog.csdn.net/qq_27471405/article/details/110340571
 */
public class TestFilter {

    public static void main(String[] args) {
        AFilter a1= new AFilter("a1");
        AFilter b1 = new AFilter("b1");
        AFilter c1 = new AFilter("c1");


        a1.setFilter(b1);
        b1.setFilter(c1);

        a1.handler();
    }
}

运行结果:

三、项目地址

https://github.com/jalenFish/design-patterns/tree/master/src/main/java/cn/zygxsq/design/module/ChainResponsibilityPattern

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-11-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、责任链模式(Chain of Responsibility Pattern)
  • 二、demo:
  • 三、项目地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档