明确概念
责任链模式为请求创建了一个接收对象链。该模式提供了一种类型的请求,以解耦请求的发送者和接收者。这种类型的设计模式是一种行为模式。在这种模式下,通常每个接收者都包含对另一个接收者的参考。如果一个对象不能处理该请求,它将向下一个接收者传递相同的请求,等等。
主要解决方案:责任链上的处理器负责处理请求。客户只需将请求发送到责任链,无需关注请求的处理细节和请求的传递。因此,责任链解耦了请求的发送者和请求的处理者。
优点
1、降低耦合度。它解耦了要求的发送者和接收者。
2、简化对象。使对象不需要知道链的结构。
3、增强对象分配责任的灵活性。允许动态增加或删除责任,通过改变链中的成员或调动他们的顺序。
4、增加新的请求处理类别非常方便。
缺点
1、不能保证必须接受请求。
2、系统性能会受到一定程度的影响,代码调试不方便,可能导致循环调用。
3、由于除错,在操作过程中观察特征可能不容易。
使用场景
1、有多个对象可以处理相同的请求,具体的对象由操作时间自动确定。
2、在不明确指定接收人的情况下,向多个对象中的一个提交请求。
3、一组对象处理请求可以动态指定。