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

网络营销模式有几种/合肥网站优化搜索

网络营销模式有几种,合肥网站优化搜索,广告设计公司的岗位有哪些,设计微信网站建设观察者模式 定义 观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时&#xf…

观察者模式

定义

观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己

注意(观察者模式和发布订阅是有不同的)

区别

观察者模式 在软件设计中是一个对象,维护一个依赖列表,当任何状态发生改变自动通知它们。

发布-订阅模式 消息的发送方,叫做发布者(publishers),消息不会直接发送给特定的接收者,叫做订阅者。

1472147-20190427154741877-2040244833.png

左边相当于微信里的微商-顾客之间的关系。右边相当于商家-淘宝-顾客之间的关系

观察者模式:顾客关注了微商的商品,微商会记住顾客关注的商品,一旦上新就直接 私聊 通知所有关注这个商品的顾客。这里的顾客就相当于观察者,这里的微商就相当于主题

订阅发布模式:顾客通过淘宝(APP或者网站)关注了商家的商品,商家一旦上新就通过淘宝(APP或者网站)向关注了它的顾客 群发 消息。这里的顾客就是订阅者,这里的淘宝就是事件总线,这里的商家就是发布者

DOM事件

只要我们曾经在DOM节点上面绑定过事件函数,那我们就使用过观察者模式,应为JS和DOM之间就是实现了一种观察者模式

document.body.addEventListener("click", function() {alert("Hello World")
},false )
document.body.click() //模拟用户点击

自定义一个简单的小例子

// 定义商家
let merchants = {}
// 定义预定列表
merchants.orderList = {}
// 将增加的预订者添加到预定客户列表中
merchants.listen = function(id, info) {if(!this.orderList[id]) {this.orderList[id] = []}this.orderList[id].push(info)console.log('预定成功')
}
//发布消息
merchants.publish = function(id) {let infos = this.orderList[id]// 判断是否有预订信息if(!infos || infos.length === 0) {console.log('您还没有预订信息!')return}// 如果有预订信息,则循环打印infos.forEach((el, index) => {console.log('尊敬的客户:')el.call(this, arguments)console.log('已经到货了')})
}
merchants.remove = function(id, fn) {// 撤销订单 var infos = this.orderList[id]if(infos instanceof Array){infos.forEach((el, index) => {el === fn &&  this.orderList[id].splice(index, 1)})}console.log('撤销成功')
}
// 定义一个预订者customerA,并指定预定信息
let customerA = function() {console.log('黑色至尊版一台')
}
let customerB = function() {console.log('白色至尊版一台')
}
let customerC = function() {console.log('红色至尊版一台')
}
// customerA 预定手机,并留下预约电话
merchants.listen('15888888888', customerA) // 预定成功
merchants.listen('15888888888', customerB) // 预定成功
merchants.listen('15777777777', customerB) // 预定成功
merchants.listen('15777777777', customerC) // 预定成功
merchants.remove('15888888888', customerB) // 撤销成功
// 商家发布通知信息
merchants.publish('15888888888')
merchants.publish('15777777777')预定成功
预定成功
预定成功
预定成功
撤销成功
尊敬的客户:
黑色至尊版一台
已经到货了
尊敬的客户:
白色至尊版一台
已经到货了
尊敬的客户:
红色至尊版一台
已经到货了

优缺点

优点:

  • 时间上的解耦
  • 对象之间的解耦

缺点:

  • 创建订阅者本身要消耗一定的时间和内存
  • 当订阅一个消息时,也许此消息并没有发生,但这个订阅者会始终存在内存中。
  • 观察者模式弱化了对象之间的联系,这本是好事情,但如果过度使用,对象与对象之间的联系也会被隐藏的很深,会导致项目的难以跟踪维护和理解

对于观察者模式还只是浅薄的认识,如有不对,还请大佬们指出,感谢(✿◕‿◕✿)

参考链接

JavaScript设计模式之观察者模式

观察者模式VS订阅发布模式

转载于:https://www.cnblogs.com/loveyt/p/10778986.html

http://www.jmfq.cn/news/5094397.html

相关文章:

  • 做网站标题/聚名网
  • 网站开发天津/举例说明seo
  • 电子商务网站建设的常用开发方法/无锡百度公司代理商
  • ps网站建设目标/网页制作
  • 南宁网站建设 醉懂网络/十大放黄不登录不收费
  • 检察院门户网站建设成效/运营商推广5g技术
  • 成都找人做网站/网站搜索引擎优化
  • 微网站开发与制作个人总结/体育新闻最新消息
  • 西安网站seo方法/西安全网优化
  • 上海企业网站制作/今日特大新闻
  • 网站友情链接对方网站没有加入本站链接对本站有没有影响?/广告软文小故事800字
  • 盘古建网站/互联网营销是做什么的
  • 电子商务网站规划与.../营销策略国内外文献综述
  • 家政网站怎么做/优化是什么意思
  • 网站制作软件下载/关键词优化排名哪家好
  • 如何做网站呢/百度关键字搜索排名
  • wordpress 地图插件/seo推广沧州公司电话
  • php网站开发几技术难点/企业网站建设方案策划
  • 做空包网站/适合发表个人文章的平台
  • php做网站都需要学什么/深圳竞价托管公司
  • 为自己做的网站申请域名/游戏推广员是诈骗吗
  • 淘宝网站边上的导航栏怎么做/搜索引擎优化的重要性
  • 网站底部 图标/seo在线培训
  • 织梦网站栏目不显示不出来/竞价推广网络推广运营
  • icp域名信息备案管理系统/移动端排名优化软件
  • 哪个软件做网站好/网站搜什么关键词
  • 手机网站打不开是什么原因造成的/企业关键词优化推荐
  • 网站在正在建设中/301313龙虎榜
  • 李宁运动服网站建设规划书/百度一下主页官网
  • 露兜博客 wordpress/网络培训seo