责任链 (Chain of Responsibility)

假如你要做一个网站,或者论坛什么的,用户想要写评论,或者发文章。但是呢 ? 在天朝有很多规定,比如敏感词,当然,有些人还会有可能加了一些javascript,html的标签,很有可能会影响本身网页的显示。

于是要进行过滤并替换。当你接收到客户端发过来的请求的时候,你首先将它们作为字符串放到某个变量中,然后使用String自带的replace方法,将某个比如尖括号改为普通括号,将需要和谐的字眼改为很和谐的内容。

string.replace("<", "(").replace(">", ")");

这样经过一个过滤过程以后再将string返回,并且存入数据库,然后显示。

这样问题就随之来了,这样的代码是写死的,你replace调用了很多次,但是却没有一个规则,或者说扩展性,每次使用的时候你可能都要重新写一遍,各个板块或者什么的要求可能又不一样,不好。

Java里面永远要记住几点,代码的重用性,可扩展性。

于是有一种更好的方法,怎么做呢?

定义一个接口,假设叫做Filter,里面随便写一个叫做过滤或者处理之类的方法,比如叫filter()。然后想要过滤哪一类型的信息就去写一个类,继承这个接口,实现过滤方法。比如敏感词过滤写一个,大小写过滤写一个,尖括号,格式,等等,随时想到了,随时写。这样处理过以后,在操作类中,就可以定义一个装着Filter类型的数组或者容器


Filter[] filter =

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值