- JavaScript 设计模式之用 AOP 实现职责链
- JavaScript 设计模式之异步的职责链
- JavaScript 设计模式之灵活可拆分的职责链节点
- JavaScript 设计模式之用职责链模式重构代码
- JavaScript 设计模式之现实中的职责链模式
优点
解耦了请求发送者和 N 个接收者之间的复杂关系,由于不知道链中的哪个节点可以处理你发出的请求,所以你只需把请求传递给第一个节点即可。
链中的节点对象可以灵活地拆分重组。增加或者删除一个节点,或者改变节点在链中的位置都是轻而易举的事情。
可以手动指定起始节点,请求并不是非得从链中的第一个节点开始传递。
缺点
不能保证某个请求一定会被链中的节点处理。在这种情况下,我们可以在链尾增加一个保底的接受者节点来处理这种即将离开链尾的请求。
职责链模式使得程序中多了一些节点对象,可能在某一次的请求传递过程中,大部分节点并没有起到实质性的作用,它们的作用仅仅是让请求传递下去,从性能方面考虑,我们要避免过长的职责链带来的性能损耗。