上图把<script>变成了 [script] ,还想把 baidu.com 变成 www.baidu.com 怎么办? 还在main方法里写 replace 么?显然一直replace不合适,那么封装一下代码。
先封装这个<script>的代码:
然后封装 baidu.com 的那个代码:
继续改造类 T 的主函数 :
如果再想处理什么字符串,就继续写xxx类然后实现Filters接口,然后写逻辑。测试的时候主函数,只需要再 list.add( new xxx() )就行
这样还是不行,责任链应该有链条,所以定义一个FiltersChain
再添加一个功能 :) 改为 ~~
测试类:
需要注意的是 之所以fc1 可以add fc2 是因为 FiltersChain 也实现了 Filters
那么FiltersChain中的某一个Filter决定链条是否继续该怎么实现?
那就把 Filters接口的方法返回类型从 void 改成 boolean,然后当自己想比如在处理ScriptFilter的时候,就结束,那么就把ScriptFilter中的 dofilters方法的返回值改成false,其他实现类的都改成true。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!