当前位置: 首页 > news >正文

凡科做网站真的免费吗中文域名交易网站

凡科做网站真的免费吗,中文域名交易网站,app下载排行,wordpress关闭某个栏目观察者模式 观察者模式又被称为发布-订阅模式,使用一个对象来收集订阅者,在发布时遍历所有订阅者,然后将信息传递给订阅者,可以这样来实现一个简单的模式 const Observable (function () {let __messages {}return {register:…

观察者模式

观察者模式又被称为发布-订阅模式,使用一个对象来收集订阅者,在发布时遍历所有订阅者,然后将信息传递给订阅者,可以这样来实现一个简单的模式

const Observable = (function () {let __messages = {}return {register: function (type, fn) {if (typeof __messages[type] === 'undefined') {__messages[type] = [fn]} else {__messages[type].push(fn)}},fire: function (type, args = {}) {if (__messages[type] === undefined) {return}let events = {type,args}__messages[type].forEach(fn => {fn.call(this, events)})},remove: function (type, fn) {if (__messages[type] instanceof Array) {let index = __messages[type].indexOf(fn)if (index >= 0) {__messages[type].splice(index, 1)}}}}
})()const fn = function (e) {console.log(e.type,e.args.msg)
}
Observable.register('test', fn)
Observable.remove('test',fn)
Observable.register('test', function (e) {console.log(e.type,e.args.msg,2122)
})Observable.fire('test', { msg: 'hello world' }) // test hello world 2122

案例

假使有一个学生跟老师的互动


// 学生类
const Student = function (result) {this.result = resultthis.say =  ()=> {console.log(this.result)}
}// 学生回答问题
Student.prototype.answer = function (que) {// 注册事件Observable.register(que, this.say)
}Student.prototype.sleep = function (que) {console.log(this.result + ' ' + que + '被注销')Observable.remove(que, this.say)
}// 老师类
const Teacher = function () {
}
Teacher.prototype.ask = function (que) {console.log('老师提问:' + que)Observable.fire(que)
}let stu1 = new Student('学生1回答问题')
let stu2 = new Student('学生2回答问题')
let tea = new Teacher()
stu1.answer('1+1等于多少')
stu1.answer('2+2等于多少')
stu2.answer('1+1等于多少')
stu2.answer('2+2等于多少')
stu2.sleep('1+1等于多少')
tea.ask('1+1等于多少')
tea.ask('2+2等于多少')

输出

/*
学生2回答问题 1+1等于多少被注销
老师提问:1+1等于多少
学生1回答问题
老师提问:2+2等于多少
学生1回答问题
学生2回答问题*/

结论

通过观察者模式可以团队开发中模块间通讯问题

解耦两个相互依赖的对象,使其侧重依赖于观察者的消息机制。这样对于任意一个订阅者对象来说,其他订阅者对象的改变不会影响到自身。对于每一个订阅者来说,其自与既可以是消息的发出者也可以是消息的执行者,这都依赖于调用观察者对象的三种方法(订消息,注销消息,发布消息)中的哪一种

http://www.15wanjia.com/news/42999.html

相关文章:

  • 建设网站的方案外链发布工具下载
  • win10电脑做网站专业网站优化培训
  • 音乐网站建设的开发平台360网站推广登录
  • 景德镇建设网站如何推广产品
  • 自建站什么意思线上推广的方式有哪些
  • 外贸网站制作策划泰安seo网络公司
  • 浙江金顶建设公司网站长沙网站seo排名
  • 人才网站源码百度客服24小时电话人工服务
  • linx服务器怎么做网站cpu游戏优化加速软件
  • 自已如何做网站企业做个网站多少钱
  • 云网站7china微商引流人脉推广软件
  • 海外红酒网站建设百度产品优化排名软件
  • 沈阳公司网站制作商务网站建设
  • 怎样建立静态网站品牌推广营销平台
  • 正规网站建设服务中心靖江seo要多少钱
  • 2003网站服务器建设中现在做网络推广都有什么方式
  • 网站打不开怎么处理湘潭网站建设
  • php做网站商城系统怎么样中国十大关键词
  • 无锡做网站的seo站内优化包括
  • 江苏住房和城乡建设部网站上海百度推广优化排名
  • 怎么做网站效果图武汉电脑培训学校有哪些
  • 深圳做网站多钱百度网盘搜索引擎
  • 汽车门户网站程序推广引流平台
  • thinkphp5做网站灰色关键词排名代做
  • 地产网站模板网站怎么做推广
  • b2b外贸网站建站国外网站排名 top100
  • 网站如何做注册类 cpa泰州seo公司
  • 哪些网站可以做微信推送windows优化大师怎么样
  • dremrever做网站流程培训体系包括四大体系
  • 长清网站建设网站建设介绍ppt