这篇文章主要讲解了如何使用javascript中的职责链模式,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
创新互联专注于南谯网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供南谯营销型网站建设,南谯网站制作、南谯网页设计、南谯网站官网定制、重庆小程序开发服务,打造南谯网络公司原创品牌,更为您提供南谯网站排名全网营销落地服务。介绍:很多情况下,在一个软件系统中可以处理某个请求的对象不止一个。例如一个网络请求过来,需要有对象去解析request Body,需要有对象去解析请求头,还需要有对象去对执行对应controller。请求一层层传递,让每一个对象都基于请求完成自己的任务,然后将请求传递给下一个处理程序。是不是感觉有点中间件的感觉。
定义:职责链就是避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求。将这些对象连成一条链,并沿着链传递请求,直到有对象处理它为止。职责链模式是一种对象行为型模式。
场景:我们继续画圆,我们准备了两组示例:
示例:
var Circle = function(){ this.radius = 0; this.drawByRadius = function(radius){ if(radius < 5){ this.drawVerySmalCircle(); }else if(radius < 10){ this.drawSmalCircle(); }else if(radius < 15){ this.drawMediumCircle(); }else if(radius < 20){ this.drawBigCircle(); }else{ this.drawVeryBigCircle(); } } this.drawVerySmalCircle = function(){ console.log('画一个超小的圆( 5以下 )'); } this.drawSmalCircle = function(){ console.log('画一个小圆( 5-10 )'); } this.drawMediumCircle = function(){ console.log('画一个中圆 ( 10-15 )'); } this.drawBigCircle = function(){ console.log('画一个大圆 ( 15-20 )'); } this.drawVeryBigCircle = function(){ console.log('画一个超大的圆 ( 20以上 )'); } } var circle = new Circle(); circle.drawByRadius(30); //画一个超大的圆 ( 20以上 )