设计模式实战 - 责任链模式

217 阅读1分钟

1 定义与类型

1.1 定义

  • 维基
    它包含了一些命令对象和一系列的处理对象;
    每一个处理对象决定它能处理哪些命令对象,它也知道如何将它不能处理的命令对象传递给该链中的下一个处理对象.
    该模式还描述了往该处理链的末尾添加新的处理对象的方法.

  • 精简定义
    为请求创建一个接收此次请求对象的链.

1.2 类型

行为型

2 适用场景

一个请求的处理需要多个对象当中的一个或几个协作处理
当然也包括需要全部的情况

3 优点

请求的发送者和接收者(请求的处理)解耦
责任链可以动态组合

4 缺点

  • 责任链太长或者处理时间过长,影响性能
  • 责任链有可能过多

相关设计模式

~和状态模式

  • 各个对象并不指定下一个所要处理的对象者是谁,只有在客户端类设置链顺序及元素,知道被某个责任链处理或者整条链结束.

参考