职责链模式的定义是:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。职责链模式的名字非常形象,一系列可能会处理请求的对象被连接成一条链,请求在这些对象之间依次传递,直到遇到一个可以处理它的对象,我们把这些对象称为链中的节点。
如下图所示:
/** * pre:职责链模式 * 定义:一系列可能处理请求的对象链接成一条链, * 请求在这条链中传递,直到遇到一个可以处理它的对象。 */// --------- 示例 1 -----------/** * 某品牌手机销售,交500元定金可得100元电商优惠券,交300元可得50元优惠券, * 没有交定金的用户只能进行普通购买,而且还不一定能买的到。 * 将这一过程用代码写出来: * orderType: 1,交500定金;2,交300元定金,3,普通购买 * pay:true 已支付定金,false未支付定金 * stock:手机库存数 */var order = (function() { var favorCache = { // 优惠配置 1: [500, 100], 2: [300, 50] }; var normal = function(stock) { // 普通购买 if(stock > 0) { console.log("普通购买.库存数:" + stock); } else { console.log("库存不足."); } &