责任链模式

2025年8月18日 | 阅读 3 分钟

在责任链中,发送者将请求发送给对象链。该请求可以由链中的任何对象处理。

责任链模式说明:“通过给多个对象提供处理请求的机会,从而避免将请求的发送者与接收者耦合在一起”。例如,ATM 在取款过程中使用责任链设计模式。

换句话说,我们可以说通常每个接收者都包含另一个接收者的引用。如果一个对象无法处理该请求,则将其传递给下一个接收者,依此类推。


责任链模式的优点

  • 减少了耦合。
  • 在为对象分配职责时增加了灵活性。
  • 允许一组类充当一个类;在一个类中产生的事件可以通过组合发送到其他处理程序类。

责任链模式的用法

它被用于

  • 当多个对象可以处理请求并且处理程序未知时。
  • 当可以处理请求的对象组必须以动态方式指定时。

责任链模式的例子

让我们通过上面的 UML 图了解责任链模式的示例。

责任链模式的 UML 图

Chain of Responsibility Pattern UML

上述 UML 的实现

步骤 1

创建一个 Logger 抽象类。

步骤 2

创建一个 ConsoleBasedLogger 类。

文件:ConsoleBasedLogger.java

步骤 3

创建一个 DebugBasedLogger 类。

文件:DebugBasedLogger.java

步骤 4

创建一个 ErrorBasedLogger 类。

文件:ErrorBasedLogger.java

步骤 5

创建一个 ChainOfResponsibilityClient 类。

文件:ChainofResponsibilityClient.java

输出