javascript设计模式之观察者模式(推荐)

javascript设计模式之观察者模式(推荐)

ID:27568339

大小:67.50 KB

页数:13页

时间:2018-12-04

javascript设计模式之观察者模式(推荐)_第1页
javascript设计模式之观察者模式(推荐)_第2页
javascript设计模式之观察者模式(推荐)_第3页
javascript设计模式之观察者模式(推荐)_第4页
javascript设计模式之观察者模式(推荐)_第5页
资源描述:

《javascript设计模式之观察者模式(推荐)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Javascript设计模式之观察者模式(推荐)观察者模式有时也称为发布--订阅模式,在观察者模式中,有一个观察者可以管理所有的目标,等到有状态发生改变的时候发出通知1.什么是观察者模式观察者模式有时也称为发布--订阅模式,在观察者模式中,有一个观察者可以管理所有的目标,等到有状态发生改变的时候发出通知。(其实sqlserver中的发布订阅也是这个道理)2.通俗解释假如以前村里的广播是一个观察者,那么每个村民就是被观察对象,如果村子里有通知,政策发生改变的时候,就需要通过广播把这个消息发布出去,而不用直接一家家的跑去发通知。3.代码

2、It;!D0CTYPEhtmlgt:nbsp;It:htmllang="en"gt;nbspIt:headgt:nbsp;It;metacharset=UTF-8gt;nbsp;It;titlegt;观察者模式It;/titlegt;nbspIt:bodygt;nbsp;It;scriptgt;nbsp;varobserver二{//观察者nbsp;villagers:[],//才寸名nbsp;addVillager:function(callback){//增加村名nbsp;this.villagers[this.villager

3、s.length]=callback;nbsp:},nbsp;removeVillager:function(callback){//移除村名nbsp;for(vari=0;ilt;this,villagers.1ength;i++){nbsp;if(this.villagers[i]===callback){nbsp;deletethis.villagers[i]:nbsp;}nbsp;}nbsp;},nbsp;publish:function(info){//发布信息nbsp;for(vari=0:ilt;this.villag

4、ers.length;i++){nbsp;if(typeofthis.villagers[i]===’function’){nbsp;this.villagers[i](info);nbsp;}nbsp:}nbsp;},nbsp;make:function(o){//这里将村子建一个这种广播方式nbsp;for(variinthis){nbsp;o[i]=this[i];nbsp;}nbsp;}nbsp;};nbsp;varvillagel={};nbsp;observer.make(villagel);//将村子1建立这种观者模式

5、nbsp;varvillagerll={nbsp;read:funotion(what){nbsp:console.logC我是第一个村子的第一个村名’+what):nbsp;}nbsp;}:nbsp;varvillagerl2={nbsp;read:function(what){nbsp;console.Iog(’我是第一个村子的第二个村名:’+wha}nbsp;}:nbsp;villagel.addVi1lager(vi11ager11.read):nbsp;villagel.addVillager(villagerl2.rea

6、d):nbsp:villagel.publish(’大家来开会呀!!!’):nbsp;villagel.removeVillager(villagerll.read):nbsp:villagel.publishC大家来开会呀!!!’):nbsp;/氺varvillage2={nbsp;myAddVillager:function(callback){nbsp;this.addVillager(callback):nbsp;},nbsp;myRemoveVillager:function(callback){nbsp;this,rem

7、oveVillager(callback):nbsp;},nbsp;myPub1ish:function(info){nbsp;this,publish(info):nbsp:}nbsp:}:nbsp;observer.make(village2);//将村子1建立这种观察者模式nbsp;varvillager21={nbsp:read:function(what){nbsp;console.log(’我是第二个村子的第一个村名:’+what):nbsp;}nbsp;};nbsp;varvillager22={nbsp;read:f

8、unction(what){nbsp;console.log(’我是第二个村子的第二个村名:’+what):nbsp;}nbsp;}:nbsp;village2.myAddVillager(villager21.read);nbsp;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。