var dialog = new Handler(app, 1);
dialog.handle = function () {
console.log('dialog before ...')
// 这里做具体的处理操作
console.log('dialog after ...')
};
var button = new Handler(dialog, 2);
button.handle();
该代码的执行结果即时dialog.handle里的处理结果,而不再是给app传入的参数里定义的handle的执行操作。
那能不能做到自身处理完以后,然后在让继任者继续处理呢?答案是肯定的,但是在调用的handle以后,需要利用原型的特性调用如下代码:
代码如下:
Handler.prototype.handle.call(this);
该句话的意思说,调用原型的handle方法,来继续调用其继任者(也就是successor )的handle方法,以下代码表现为:button/dialog/app三个对象定义的handle都会执行。
代码如下:
var app = new Handler({
handle: function () {
console.log('app handle');
}
}, 3);
var dialog = new Handler(app, 1);
dialog.handle = function () {
console.log('dialog before ...')
// 这里做具体的处理操作
Handler.prototype.handle.call(this); //继续往上走
console.log('dialog after ...')
};
var button = new Handler(dialog, 2);
button.handle = function () {
console.log('button before ...')
// 这里做具体的处理操作
Handler.prototype.handle.call(this);
console.log('button after ...')
};
button.handle();
通过代码的运行结果我们可以看出,如果想先自身处理,然后再调用继任者处理的话,就在末尾执行Handler.prototype.handle.call(this);代码,如果想先处理继任者的代码,就在开头执行Handler.prototype.handle.call(this);代码。
总结
职责链模式经常和组合模式一起使用,这样一个构件的父构件可以作为其继任者。
同时,DOM里的事件冒泡机制也和此好像有点类似,比如点击一个按钮以后,如果不阻止冒泡,其click事件将一直向父元素冒泡,利用这个机制也可以处理很多相关的问题,比如本系列设计模式享元模式里的《例1:事件集中管理》的示例代码。
![]() |
曾刚:消费金融未来监管或出现这几大 |
放眼国际,全球金融科技创新正如火如荼,新技术重塑着金融产业全流程。以人工智能、区块链、云计算、大数据为代表的核 |
![]() |
2017⇆2019三年寒冬 第三方支付行业之变 |
中国的钱包制造商,太难了。 有着中国缝制设备制造之都美誉的浙江台州,如今已经找不到专门生产钱包的企业了。 要知道 |
![]() |
行业诞生以来最大“地震”!大数据倒 |
一场大数据行业诞生以来最大规模的地震正在发生。 2019年9月6日,第三方数据风控公司魔蝎数据和新颜科技的相关负责人在 |
![]() |
“蹊跷”的银行财报:资本充足率飙升 |
日前,中国债券信息网披露了黄石农村商业银行股份有限公司(下称黄石农商行)2019年三季度信息报告(下称三季报)。 三 |
![]() |
被诈骗+背债!凭什么不让我们起诉支付 |
本文呦呦鹿鸣一位读者的遭遇,这件事从未披露过,他写了下来,供诸君参考。我很欣赏年轻的朋友们这样认真对待自己权利 |
![]() |
建行贵州分行被罚50万:“e信通”信贷资 |
12月3日,贵州银保监局公布行政处罚信息公开表(银保监银罚决字〔2019〕17号),中国建设银行股份有限公司(以下称建设银 |
![]() |
水滴筹创始人:再管不好 愿把公司交给 |
12月5日晚,水滴筹创始人兼CEO沈鹏在微博上发布公开信《水滴筹欢迎大众的监督,希望重新赢得信任》,并表示再管不好,我 |
![]() |
山东证监局原局长徐铁被开除党籍:曾 |
12月6日,据中央纪委国家监委网站消息,日前,中央纪委国家监委驻中国证监会纪检监察组、山东省监委对中国证券监督管理 |
![]() |
助贷业务的运作模式、潜在风险及监管 |
编者语: 助贷业务存在客户支持、资金支持和风控支持三种基本模式,其发展建立在比较优势理论和金融功能理论的基础上 |
![]() |
太悲情!内幕交易亏损超百万 还被罚 |
证监会日前通报了一桩利用内幕交易炒股的案件。在ST天业历时一年多,耗资18亿元的跨国并购案的背后,违法当事人斥资千 |
![]() |
曾刚:消费金融未来监管或出现这几大 |
放眼国际,全球金融科技创新正如火如荼,新技术重塑着金融产业全流程。以人工智能、区块链、云计算、大数据为代表的核 |
![]() |
2017⇆2019三年寒冬 第三方支付行业之变 |
中国的钱包制造商,太难了。 有着中国缝制设备制造之都美誉的浙江台州,如今已经找不到专门生产钱包的企业了。 要知道 |
![]() |
行业诞生以来最大“地震”!大数据倒 |
一场大数据行业诞生以来最大规模的地震正在发生。 2019年9月6日,第三方数据风控公司魔蝎数据和新颜科技的相关负责人在 |
![]() |
“蹊跷”的银行财报:资本充足率飙升 |
日前,中国债券信息网披露了黄石农村商业银行股份有限公司(下称黄石农商行)2019年三季度信息报告(下称三季报)。 三 |
![]() |
被诈骗+背债!凭什么不让我们起诉支付 |
本文呦呦鹿鸣一位读者的遭遇,这件事从未披露过,他写了下来,供诸君参考。我很欣赏年轻的朋友们这样认真对待自己权利 |
![]() |
建行贵州分行被罚50万:“e信通”信贷资 |
12月3日,贵州银保监局公布行政处罚信息公开表(银保监银罚决字〔2019〕17号),中国建设银行股份有限公司(以下称建设银 |
![]() |
水滴筹创始人:再管不好 愿把公司交给 |
12月5日晚,水滴筹创始人兼CEO沈鹏在微博上发布公开信《水滴筹欢迎大众的监督,希望重新赢得信任》,并表示再管不好,我 |
![]() |
山东证监局原局长徐铁被开除党籍:曾 |
12月6日,据中央纪委国家监委网站消息,日前,中央纪委国家监委驻中国证监会纪检监察组、山东省监委对中国证券监督管理 |
![]() |
助贷业务的运作模式、潜在风险及监管 |
编者语: 助贷业务存在客户支持、资金支持和风控支持三种基本模式,其发展建立在比较优势理论和金融功能理论的基础上 |
![]() |
太悲情!内幕交易亏损超百万 还被罚 |
证监会日前通报了一桩利用内幕交易炒股的案件。在ST天业历时一年多,耗资18亿元的跨国并购案的背后,违法当事人斥资千 |