JS实现观察者模式
2017-05-11 11:16
381 查看
观察者模式 又称 订阅发布模式
QQ Email 客户端订阅消息 从报社发布消息,然后客户d端接收。
代码如下:
QQ Email 客户端订阅消息 从报社发布消息,然后客户d端接收。
代码如下:
1 //观察者模式 又称订阅发布模式 2 function Newspaper() { 3 var list = new Set(); 4 //订阅 5 this.subscribe = function(c) { 6 list.add(c); 7 } 8 //取消订阅 9 this.unsubscribe = function(c) { 10 list.remove(); 11 } 12 //发布新闻 13 this.publish = function(msg) { 14 for(var i of list.keys()) { 15 i.notice(msg); 16 } 17 } 18 //每4s产生一条新闻 19 this.start = function() { 20 setInterval(function() { 21 this.publish(Math.random()); 22 }.bind(this), 4000); 23 } 24 } 25 26 function Client() { 27 this.notice = function(msg) { 28 console.log(this.type + "内容:" + msg); 29 } 30 } 31 var QQ = function() { 32 this.type = "QQ"; 33 }; 34 QQ.prototype = new Client(); 35 var Email = function() { 36 this.type = "Email"; 37 }; 38 Email.prototype = new Client(); 39 40 var theme = new Newspaper(); 41 theme.start(); 42 theme.subscribe(new QQ("aaa")); 43 theme.subscribe(new Email("aaa@qq.com"));
相关文章推荐
- 介绍一个款可以在javascript对象上实现观察者模式的类库-Watch.js
- PHP设计模式之JS实现观察者模式
- js设计模式中发布与订阅实现观察者模式例子
- JS实现观察者模式
- js实现观察者模式
- JS观察者设计模式:实现iframe之间快捷通信
- JS实现Observable观察者模式
- 事件机制 -- 典型观察者模式 js实现
- js观察者模式简单实现
- js实现观察者模式风格替换
- js实现观察者模式
- JS设计模式之观察者模式实现实时改变页面中金额数的方法
- cocos2d-js 实现观察者模式
- js实现观察者模式
- JS实现观察者模式
- js学习心得之js的自定义事件-基于观察者模式的实现
- js实现页面之间的监听,触发通知-------类似于观察者模式
- AspectJ实现设计模式(一)——观察者模式
- 在asp.net中实现观察者模式,或有更好的办法?
- 观察全世界(观察者模式的可复用代码实现)(上)