击鼓传花java_击鼓传花联想到了Java设计模式:责任链模式

应用场景

http web请求处理,请求过来后将经过转码、解析、参数封装、鉴权等一系列的处理(责任),而且要经过多少处理是可以灵活调整的

那么该怎么做呢?

将所有的处理都写在一个类中行不行呢?

分成多个类又该如何灵活的组合在一起呢?

简单示例

Request类:

public interface Request{

//do something...

}

复制代码

ResponsibilityChain类:

public class ResponsibilityChain{

private List responsibilityList = new ArrayList<>();

private Integer index = 0;

public void process(Request request){

if (this.index < responsibilityList.size()) {

this.responsibilityList.get(index++).process(request, this);

}

}

/** 加入链中 */

public void register(Responsibility responsibility){

this.responsibilityList.add(responsibility);

}

}

复制代码

Responsibility接口:

public interface Responsibility{

void process(Request request, ResponsibilityChain chain);

}

复制代码

Responsibility实现类:

public class ResponsibilityA implements Responsibility{

@Override

public void process(Request request, ResponsibilityChain chain){

System.out.println("转码");

chain.process(request);

}

}

复制代码

public class ResponsibilityB implements Responsibility{

@Override

public void process(Request request, ResponsibilityChain chain){

System.out.println("解析");

chain.process(request);

}

}

复制代码

public class ResponsibilityC implements Responsibility{

@Override

public void process(Request request, ResponsibilityChain chain){

System.out.println("参数封装");

chain.process(request);

}

}

复制代码

public class ResponsibilityD implements Responsibility{

@Overr

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值