媛代码社区

java_使用责任链模式重构代码

技术
Alpha
· 阅读 121 · 评论 0 · 2 年前

使用责任链模式重构代码

 

使用责任链模式将以往的代码进行了重构,应用场景是这样的:

请求第三方接口,获取数据,然后走a步骤处理,提交至a1处,之后走b步骤处理提交至b1处,走c步骤处理提交至c1处;

原有的流程是,在a处结束后调用b,b处结束后调用c,这样做的弊端是流程不清晰,调试排错的时候得debug--步步跟踪,不利于后续代码维护和扩

调整后的流程:

各个步骤声明为责任链的链接点,

在初始化调用处,将各个链接点链接起来,如

a->b->c,数据由a入口今日责任链内部流转,并在c处返回最终结果,这样做的好处是屏蔽底层细节,并且流程节点清晰,易于后续维护扩展,比如我需要在中间加个节点,只需新增相应代码,并在调用.处声明并加入责任链,再比如说,一个新需求只需要b->C,或者b->a,我只需要调整责任链的节点位置即可.

代码如下:

==========================================================

public abstract class ChainNode {
    private ChainNode next;
    public abstract <T>T doPost(Object object);
    public ChainNode() {
        super();
    }
    public ChainNode next() {
        return next;
    }
    public ChainNode appendNext(ChainNode next) {
        this.next = next;
        return this;
    }
}

 

==========================================================

public class Chain1 extends ChainNode{
    @Override
    public <T> T doPost(Object object) {
        System.out.printf("Chain3");
        ChainNode next = super.next();
        if (null == next) {
            return null;
        }
        return next.doPost(object);
    }
}

==========================================================

public class Chain2 extends ChainNode{
    @Override
    public <T> T doPost(Object object) {
        System.out.printf("Chain2");
        ChainNode next = super.next();
        if (null == next) {
            return null;
        }
        return next.doPost(object);
    }
}

==========================================================

public class Chain3 extends ChainNode{
    @Override
    public <T> T doPost(Object object) {
        System.out.printf("Chain3");
        ChainNode next = super.next();
        if (null == next) {
            return null;
        }
        return next.doPost(object);
    }
}

==========================================================

public class ChainTest {

帖子评论(0)
发起评论
暂无数据
Loading
推荐帖子
  • 作为一名开发者/职场人士,您有哪些...
  • 姐妹们最近工作的需要想学习英语了,...
  • 好书分享 -- 东京贫困女子
  • 招聘两名前端开发工程师
  • 博客收友链啦
社区宗旨
媛代码社区是女性科技从业者的聚集地
我们鼓励:
分享生活经验,日常趣事
晒晒您的作品,讨论讨论技术
也可以吐槽职场,抱怨不公
我们致力于:
让更多的人听到我们的声音
打破社会传统偏见!提升个人能力!
快来加入媛代码大家庭吧!
加入组织
二维码

媛代码社区微信公众号