package com.anhe.test;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Albert.Tang on 2019/5/5 10:10 PM.
*/
//@SuppressWarnings("all")
public class Main {
public static void main(String[] args) {
Message message = new Message();
message.setMsg("我们都是<script>中国人,我们都是996");
// List<Filter> filters = new ArrayList<>();
// filters.add(new HTMLFilter());
// filters.add(new SensitiveFilter());
FilterChain fc = new FilterChain();
fc.add(new HTMLFilter()).add(new SensitiveFilter());
fc.doFilter(message);
FilterChain fc2 = new FilterChain();
fc2.add(new PeopleFilter()).add(new OtherFilter());
fc.add(fc2);
fc.doFilter(message);
System.out.println(message);
}
}
class Message {
private String title;
private String msg;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
@Override
public String toString() {
return "Message{" +
"msg='" + msg + '\'' +
'}';
}
}
class HTMLFilter implements Filter {
@Override
public void doFilter(Message message) {
String msg = message.getMsg();
msg = msg.replace("<", "[");
msg = msg.replace(">", "]");
message.setMsg(msg);
}
}
class SensitiveFilter implements Filter {
@Override
public void doFilter(Message message) {
String msg = message.getMsg();
msg = msg.replaceAll("996", "955");
message.setMsg(msg);
}
}
class FilterChain implements Filter {
List<Filter> filters = new ArrayList<>();
List<Filter> add(Filter filter) {
filters.add(filter);
return filters;
}
@Override
public void doFilter(Message message) {
for (Filter filter : filters) {
filter.doFilter(message);
}
}
}
class PeopleFilter implements Filter {
@Override
public void doFilter(Message message) {
String msg = message.getMsg();
msg = msg.replace("我", "你");
message.setMsg(msg);
}
}
class OtherFilter implements Filter {
@Override
public void doFilter(Message message) {
String msg = message.getMsg();
msg = msg.replace("人", "仁");
message.setMsg(msg);
}
}
interface Filter {
void doFilter(Message message);
}
责任链模式代码
最新推荐文章于 2024-04-02 16:40:25 发布