概述
有这样一个需求,要求过滤一个广告、政治的敏感关键词,要求用职责链模式来完成
职责链是什么呐?职责链是指,多个处理器以此处理同一个请求。一个请求先经过A处理器处理,然后再把请求传递给B处理器,B处理器处理完后再传递给C处理器,依此类推,形成一个链条。链条上的每个处理器各自承担各自的处理职责,所以叫责任链模式
demo
public interface SensitiveWordFilter {
boolean doFileter(Content content);
}
public class AdsWordFilter implements SensitiveWordFilter{
@Override
public boolean doFileter(Content content) {
//具体处理逻辑
return false;
}
}
public class SexyWordFilter implements SensitiveWordFilter{
@Override
public boolean doFileter(Content content) {
//具体处理逻辑
return false;
}
}
public class SensitiveWordFilterChain {
private List<SensitiveWordFilter> filters = new ArrayList<>();
public void addFilter(SensitiveWordFilter filter){
this.filters.add(filter);
}
public boolean filter(Content content){
for (SensitiveWordFilter filter: filters) {
if (!filter.doFileter(content)){
return false;
}
}
return true;
}
public static void main(String[] args) {
SensitiveWordFilterChain filterChain = new SensitiveWordFilterChain();
filterChain.addFilter(new AdsWordFilter());
//后端代码根据boolean值进行处理
boolean legal = filterChain.filter(new Content());
if (!legal){
System.out.println("不能发表");
}else {
System.out.println("发表数据");
}
}
}