定义
在对某个对象进行多步骤处理的时候,保持其的处理步骤的扩展性,这是个人对这个设计模式的理解
使用场景
对于请求信息与响应信息的处理,以及对于一些对象啊或者文本有敏感词汇需要处理的时候可以使用。
代码示例
首先定义一个对象,这个对象可以是任意的类型,只要他需要经过多步骤的处理都可以使用这个设计模式来确保他的后续处理具有扩展性。
class Text{
String t;
public String getT() {
return t;
}
public void setT(String t) {
this.t = t;
}
}
定义一个责任环的接口 ,每一环调用doFilter对对象进行处理
interface Filter{
//处理逻辑的方法
Boolean doFilter(Text text);
}
定义几个责任环的实现,doFilter是对对象的业务处理,这里就不写业务了
class F1 implements Filter{
//这里的返回值可以经过业务判断来决定返回的是true还是false,这个返回值决定着是否继续往下一环执行
//这里暂定是第一环节就返回false不执行第二环了
@Override
public Boolean doFilter(Text text) {
text.setT(text.getT() + "F1 处理结束");
return true;
}
}
class F2 implements Filter{
@Override
public Boolean doFilter(Text text) {
text.setT(text.getT() + "F2 处理结束");
return true;
}
}
class F3 implements Filter{
@Override
public Boolean doFilter(Text text) {
text.setT(text.getT() + "F3 处理结束");
return false;
}
}
class F4 implements Filter{
@Override
public Boolean doFilter(