概念
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。
将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它位置
注意:请求发送到链中后,签一节消费部分消息,交给后续节点继续处理,可以由处理结果也可以没有处理结果,链是有谁构成的呢?链是有多个处理者构成的。
优点
-
将请求和处理分开(请求者无需知道是谁处理了它)
-
耦合性不高(他们之间保持一个指向其后继者的引用)
-
提高系统的灵活性(可以随时增加或修改处理一个请求的结构)
缺点
- 性能不高
- 调试不变
为什么会出现这样的问题呢?本质上讲还是因为链条比较长,环节多。
结构图
职责
抽象的处理者的职责:
- 定义请求的处理方法
- 设置下一个处理者
- 定义具体的请求者必须实现的两个方法
小总
此模式,就是按照职责/责任老分配处理任务的,举个例子,你去办理业务会接触到总经理马?不会,你会先接触到业务员,我们与业务员直接接触如果业务员不能够满足你的需求,那么我们就会接触到业务员的上一层,这就是一个职责链(责任链),我们先从最小的处理者还是处理,不能处理则转到下一权限者处。