java设计模式之责任链

责任链模式常用于Web开发,如Apache Tomcat的Encoding处理、Struts2拦截器和Servlet Filter。本文通过模拟网站信息处理的字符过滤,解释了如何实现责任链模式。Filter接口定义了处理逻辑,FaceFilter、HTMLFilter和SesitiveFilter分别处理特定内容。FilterChain类将这些过滤器串联起来,MsgProcessor类调用FilterChain处理消息。这种模式允许动态扩展处理链,适应不同的处理需求。
摘要由CSDN通过智能技术生成

责任链

责任链模式(Chain of Responsibility)是Web项目中最经常用到的一个设计模式,比如是Apache Tomcat 的对Encoding的 处理,Struts2 的拦截器, jsp servlet 的Filter 等等,都是基于责任链模式设计的。比如有一个作业任务,先有一个对象对其负责处理,之后又交给其他的一个对象处理,一次传递下去,这是最通俗最简单的责任链模式的应用。但是责任链模式不仅仅的的就局限于这一种的最简单的应用,比如通信领域的短信验证码的获取,请求验证码---->发送验证码-----> 处理验证码----->提交验证码----->得到结果 等等的应用都和责任链模式密布可分。不一定非要在设计中就是用设计模式,但是联系联系周围的环境,思考思考周边的应用,自然的规律的轮回,都都感觉和设计模式有瓜葛。

 现在就模拟对网站信息处理的字符处理展示下什么是责任链模式:

首先给出一个Filter接口:

public interface Filter {
	String doFilter(String str);
}

接着下面是三个实现了Filter接口的类:

FaceFilter代码如下:

public class FaceFilter implements Filter {

	public String doFilter(String str) {
		return str.replace(":)", "^V^");
	}

}

HTMLFilter代码如下

public class HTMLFilter implements Filter {

	public String doFilter(String str) {
		//process the html tag <>
		String r = str.replace('<', '[')
				   .replace('>', ']');
		return r;
	}

}

SesitiveFilter代码如下:

public class SesitiveFilter implemen
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值