java担任监听者的方式有哪些_[Java教程]监听者模式

[Java教程]监听者模式

0 2017-11-04 18:00:04

在函数里传回调函数,可以实现在特定的条件下执行想要的功能,但是缺点是什么呢?如果你要在特定条件下执行很多的功能,咋办呢?再次调用函数,然后回调?太啰嗦;

这里说的监听者模式呢,其实也是一种思想,用大白话比喻呢就是:比如说有一个人比赛得了冠军(也可以是亚军,233),然后嘞,有三个人分别想做三件事,但是,这三件事只有当前面那个人拿了冠军,这三件事才会被做;那么,怎么办呢?

用监听者模式的思想来解决这件事:先定义两个方法,一个方法用来将三个人想做的事push进一个定义好的数组里面;另一个方法,遍历数组,执行数组里的方法;

(其实我是自己明白的,就怕表达不清楚~)

写一个简单的应用,代码如下:1 //定义一个person对象 2 let person = { 3 listens : [], 4 5 //将需要特定时机触发的函数push进listens数组里 6 //调用下边的executeListener函数就可以触发 7 addListener : function(fn){ 8 this.listens.push(fn); 9 },10 11 //在特定条件下调用函数,执行listens里面的函数12 executeListener : function() {13 this.listens.forEach(function(ele){14 ele();15 });16 }17 };18 19 //分别将要做的事情push进数组里面,等拿了冠军,一起调用20 person.addListener(function(){21 console.log('恭喜你,拿了冠军');22 });23 person.addListener(function(){24 console.log('拿了冠军,送给你一束鲜花');25 });26 person.addListener(function(){27 console.log('得了冠军,回家请你饱餐一顿');28 });29 30 31 //拿了冠军了,好,执行那三件事吧~32 if('拿了冠军'){33 person.executeListener();34 }

本文网址:http://www.shaoqun.com/a/330391.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值