设计模式之5职责连模式

2018-06-03  本文已影响0人  钱学敏

定义

使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这些关系连成一条链,并沿着这条链传递该请求,直到一个对象处理它为止。现实生活中比如我们坐公交车的人太多,我们把1块钱交给售票员,让前面的人往前递直到售票员收到结束。我们是这个事件的发起者,中间传递的人有职责帮我们把1块钱传给售票员,但这1块钱不属于他们。
1、一定要有发起者
2、每一个中间人都要next往下传递,不能停
3、最后一个人一定要结束这件事

应用场景

将大的方法拆分,通过next串联起来

module.exports=function(){
    router.get('/:id.html',doSomething);
}
//将上面的方法拆分为三个  拆分业务逻辑 让代码更清晰
module.exports=function(){
    router.get('/:id.html',step1,step2,end);
}
//step1与step2一样 通过next向后传递
step1:function(req,res,next){
    safeRequest({
        url:'',
        success:function(data){
            req.data.index=data;
            return next();
        },
        error:function(){
            res.render('index/index.tpl',{})
        }
    })
}

end:function(req,res,next){
    var result=req.data.index;
    res.render(result)
}
上一篇下一篇

猜你喜欢

热点阅读