设计模式学习(四) — 行为模式
行为模式主要侧重与类与类或对象与对象之间的交互过程
个人主页:tuzhenyu’s page
原文地址:设计模式学习(四) — 行为模式
(0) 基本概念
行为模式是类与类或者对象与对象之间交互方式的设计总结
行为模式主要包括责任链模式,观察者模式,状态模式
(1) 责任链模式
责任链模式主要是使多个对象有机会处理请求从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
责任链模式的优势:
有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定;
可以动态添加责任链中的处理对象
责任链模式的缺点:
每一个请求都需要遍历职责链,性能上存在问题;
在处理对象中递归调用下一处理对象,如果递归层次过多会出现栈溢出;
责任链模式的使用场景
Spring MVC中的Filter过滤器,Interceptor拦截器使用责任链模式,请求传入后会先通过过滤器链的处理后再经Dispatcher分发到各个Controller处理器上;
Netty的Pipeline管道也是一种责任链模式,消息经过责任链中的Handler的处理后会传递到下一个Handler;
Spring中责任链使用实例
- 注册拦截器到容器中,当有请求到来后会依次经过拦截器责任链处理
@Component
public class