假如你要做一个网站,或者论坛什么的,用户想要写评论,或者发文章。但是呢 ? 在天朝有很多规定,比如敏感词,当然,有些人还会有可能加了一些javascript,html的标签,很有可能会影响本身网页的显示。
于是要进行过滤并替换。当你接收到客户端发过来的请求的时候,你首先将它们作为字符串放到某个变量中,然后使用String自带的replace方法,将某个比如尖括号改为普通括号,将需要和谐的字眼改为很和谐的内容。
string.replace("<", "(").replace(">", ")");
这样经过一个过滤过程以后再将string返回,并且存入数据库,然后显示。
这样问题就随之来了,这样的代码是写死的,你replace调用了很多次,但是却没有一个规则,或者说扩展性,每次使用的时候你可能都要重新写一遍,各个板块或者什么的要求可能又不一样,不好。
Java里面永远要记住几点,代码的重用性,可扩展性。
于是有一种更好的方法,怎么做呢?
定义一个接口,假设叫做Filter,里面随便写一个叫做过滤或者处理之类的方法,比如叫filter()。然后想要过滤哪一类型的信息就去写一个类,继承这个接口,实现过滤方法。比如敏感词过滤写一个,大小写过滤写一个,尖括号,格式,等等,随时想到了,随时写。这样处理过以后,在操作类中,就可以定义一个装着Filter类型的数组或者容器
Filter[] filter =