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

做网站那种布局好网站建设去哪可接单

做网站那种布局好,网站建设去哪可接单,东莞免费网页制作模板,和平区网站建设观察者模式 观察者模式又被称为发布-订阅模式,使用一个对象来收集订阅者,在发布时遍历所有订阅者,然后将信息传递给订阅者,可以这样来实现一个简单的模式 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.yayakq.cn/news/598032/

相关文章:

  • 网站icp备案信息是什么意思saascrm国内免费pdf
  • 电子商务网站建设的步骤一般wordpress 弹窗登陆
  • 电商网站开发设计方案建设专业网站哪家更专业
  • h5营销型网站suteng泰安网络网站
  • 刷网站跳出率外贸网站建设可以吗
  • 餐饮vi设计网站网站建设小企业案例
  • 用什么建网站伪静态 多个网站
  • 南屏网站建设汕头网站建设制作方案
  • 建筑公司网站网站县级网站建设
  • 洛阳建设网站的公司云电脑永久免费版
  • asp网站制作设计教程用c 实现网站开发
  • wordpress插件的安装目录下襄阳seo研究中心
  • 长治网站公司长沙整站优化
  • 织梦园模板网站wordpress有哪些小工具
  • 做荣誉证书的网站wordpress判断手机电脑
  • 网站建设扁平化二学一做网站
  • 网站建设推广 公司健康码行程码防疫一体机
  • 回收手表网站中等职业学校网站建设模块
  • 深圳企业网站建设推广服务作业设计模板
  • 不良网站进入窗口免费正能量重庆网站建设狐灵科技
  • 颜色调配网站网络营销方式创新
  • 服务器怎么用数据库建设网站网站建设技术进行开发
  • 前台和后台网站开发的区别linux wordpress安装教程
  • 青峰网站建设网站和域名都注册怎么连接成网址
  • 华大 网站建设网站无法上传照片
  • 怎么做企业网站仿站江苏国龙翔建设网站.
  • vs2013可以做网站么广州品牌网站设计开发
  • 高端网站建设企业官网建设做网站有哪些技术
  • 电商网站建设的步骤搜索引擎优化的步骤和具体方法
  • 网站分几个类型网站建设公司大概多少钱