简述
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,这些对象连成一条链,并沿着链条传递该请求,直到有对象处理它为止。
例如高峰期搭公交,上车后没办法刷卡,只好把羊城通往前传递,经过几个人传递,最终才刷到卡。
例如上课时传纸条,同学间帮忙传递,最终送到要送到的人手上。
使用场景
- 兼容判断
- 订单优惠
- ..
案例
我们负责的电商网站购买有一些优惠。
- 支付500元定金得到100元优惠券。
- 支付200元定金得到50元优惠券。
- 不支付定金,无优惠。
为了不写出大量if判断,可以采用职责链模式。
1 | Function.prototype.after = function (fn) { |