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

绿色建筑设计南京seo公司教程

绿色建筑设计,南京seo公司教程,北京门户企业网站建设,wordpress 扫码阅读文章目录 前言介绍实现优缺点应用场景后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:前端设计模式 🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误&#…

文章目录

  • 前言
  • 介绍
  • 实现
  • 优缺点
  • 应用场景
  • 后言

前言

hello world欢迎来到前端的新世界


😜当前文章系列专栏:前端设计模式
🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误,感谢大家指出)🌹
💖感谢大家支持!您的观看就是作者创作的动力

介绍

观察者模式又称发布-订阅模式(Publish/Subscribe Pattern),是我们经常接触到的设计模式,日常生活中的应用也比比皆是,比如你订阅了某个博主的频道,当有内容更新时会收到推送;又比如JavaScript中的事件订阅响应机制。观察者模式的思想用一句话描述就是:被观察对象(subject)维护一组观察者(observer),当被观察对象状态改变时,通过调用观察者的某个方法将这些变化通知到观察者。

实现

观察者模式中Subject对象一般需要实现以下API:

  • subscribe(): 接收一个观察者observer对象,使其订阅自己
  • unsubscribe(): 接收一个观察者observer对象,使其取消订阅自己
  • fire(): 触发事件,通知到所有观察者
// 被观察者
function Subject() {this.observers = [];
}Subject.prototype = {// 订阅subscribe: function (observer) {this.observers.push(observer);},// 取消订阅`在这里插入代码片`unsubscribe: function (observerToRemove) {this.observers = this.observers.filter(observer => {return observer !== observerToRemove;})},// 事件触发fire: function () {this.observers.forEach(observer => {observer.call();});}
}

验证是否订阅成功

const subject = new Subject();function observer1() {console.log('Observer 1 Firing!');
}function observer2() {console.log('Observer 2 Firing!');
}subject.subscribe(observer1);
subject.subscribe(observer2);
subject.fire();//输出:
Observer 1 Firing! 
Observer 2 Firing!

验证一下取消订阅是否成功:

subject.unsubscribe(observer2);
subject.fire();//输出:
Observer 1 Firing!

优缺点

优点

  • 支持简单的广播通信,自动通知所有已经订阅过的对象
  • 目标对象与观察者之间的抽象耦合关系能单独扩展以及重用
  • 增加了灵活性
  • 观察者模式所做的工作就是在解耦,让耦合的双方都依赖于抽象,而不是依赖于具体。从而使得各自的变化都不会影响到另一边的变化。

缺点

过度使用会导致对象与对象之间的联系弱化,会导致程序难以跟踪维护和理解

应用场景

  • DOM事件
document.body.addEventListener('click', function() {console.log('hello world!');
});
document.body.click()

后言

创作不易,要是本文章对广大读者有那么一点点帮助 不妨三连支持一下,您的鼓励就是博主创作的动力

http://www.dt0577.cn/news/19581.html

相关文章:

  • 做名片哪个网站可以找免费搭建网站的软件
  • 免费发做网站1688精品货源网站入口
  • 网站做飘浮怎么做惠州网站建设方案推广
  • wordpress摄影社站长seo
  • 苏州公司注册地址挂靠公司优化是什么意思
  • 武汉网站推广设计免费网站在线客服软件
  • 企业网站托管哪家好媒体公关公司
  • 有那些网站可以做担保交易的品牌宣传
  • 北京网站建设设计公司贵州seo学校
  • 商务网站网络环境设计资源搜索神器
  • 东莞网站制作网站设计厦门seo顾问屈兴东
  • 音乐播放器网站怎么做专业黑帽seo推广
  • 广西网站建设价格多少四川网络推广seo
  • 哪个网站推荐做挖机事的电商还有发展前景吗
  • 手机网站排名怎么做朋友圈营销广告
  • 广州十大网站建设seo实战技巧
  • 使用国外空间的网站百度投诉中心人工电话号码
  • 武汉做医疗器械公司网站的武汉网络营销推广
  • 呼和浩特网站开发网络宣传渠道有哪些
  • 网站作业二级网页怎样做百度推广网页
  • wordpress少儿主题北京seo排名外包
  • 哪个分期网站可以做代购美国疫情最新数据消息
  • 北京微信网站建设费用电脑系统优化工具
  • 精神文明地方联盟网站建设指数计算器
  • 网站开发项目需要什么人员开封网站设计
  • 用asp.net 做网站我赢seo
  • 怎样用java 做网站郑州网站建设七彩科技
  • 手机网站怎么做淘宝客最佳磁力吧ciliba磁力链
  • 注册购买域名后怎么做网站北京网站优化对策
  • 百度手机网站生成博客seo怎么做