资讯专栏INFORMATION COLUMN

邮件订阅_观察者模式

he_xd / 1713人阅读

摘要:出版商不同杂志的订阅者数组添加订阅这方法订阅是触发的方法和订阅哪个类型的如果这个订阅类型没有,就新创建一个如果已经存在了,就把订阅触发的方法加到订阅数组里面删除订阅者出版只有发布者才能出版处理删除或者出版的方法调用哪个订阅者库如果是出版的话

var publisher = {//出版商
            subscribers:{//不同杂志的订阅者数组
                any : [] 
            },
            // 添加订阅这方法
            subscribe:function(fn,type){//订阅是触发的方法和订阅哪个类型的
                type = type || "any";
                if(typeof this.subscribers[type] === "undefined"){//如果这个订阅类型没有,就新创建一个
                    this.subscribers[type] = [];
                }
                this.subscribers[type].push(fn);//如果已经存在了,就把订阅触发的方法加到订阅数组里面
            },
            // 删除订阅者
            unsubscribe : function(fn,type){
                this.visitSubscribers("unsubscribe",fn,type);
            },
            // 出版 只有发布者才能出版
            publish : function(publication,type){
                this.visitSubscribers("publish",publication,type);
            },
            //处理删除或者出版的方法
            visitSubscribers : function(action,arg,type){
                var pubtype = type || "any", //调用哪个订阅者库
                    subscribers = this.subscribers[pubtype],//
                    i,
                    max = subscribers.length;
                    console.log(subscribers)

                    for(i=0;i           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85434.html

相关文章

  • 用最简单的方式聊一下JavaScript中的察者模式

    摘要:观察者模式,是设计模式之一。即便如此,笔者仍精心准备了这篇博客,期望用最简单的方式来介绍下该模式。这里有个小知识点提一下函数对象的属性就是该函数名最后是思路是通过找到指定数组,然后对数组中的回调函数进行依次调用,达到发布的目的。 观察者模式,是JavaScript设计模式之一。当然也不仅仅限于JavaScript这门语言,网上对该模式的介绍已是多如牛毛,而且讲得各有特色各有心得。即便如...

    megatron 评论0 收藏0
  • 发布订阅模式实现及发布订阅模式察者模式的不同

    摘要:发布订阅者模式中,订阅者是不知道也不关心事件是为什么触发,是由哪一个事件触发,只知道事件触发时候,会告诉自己。然而,在发布订阅模式中,发布者和订阅者不知道对方的存在。在发布订阅模式中,组件是松散耦合的,正好和观察者模式相反。 概念 发布订阅者模式,是javascript甚至大多数语言都有的语言模式,比较概念的解释是, 订阅者把自己想订阅的事件注册到调度中心,当该事件触发时候,发布者发布...

    YanceyOfficial 评论0 收藏0
  • 发布订阅模式实现及发布订阅模式察者模式的不同

    摘要:发布订阅者模式中,订阅者是不知道也不关心事件是为什么触发,是由哪一个事件触发,只知道事件触发时候,会告诉自己。然而,在发布订阅模式中,发布者和订阅者不知道对方的存在。在发布订阅模式中,组件是松散耦合的,正好和观察者模式相反。 概念 发布订阅者模式,是javascript甚至大多数语言都有的语言模式,比较概念的解释是, 订阅者把自己想订阅的事件注册到调度中心,当该事件触发时候,发布者发布...

    Jensen 评论0 收藏0
  • Laravel核心解读--察者模式

    摘要:模式定义观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。 观察者模式 Laravel的Event事件系统提供了一个简单的观察者模式实现,能够订阅和监听应用中发生的各种事件,在PHP的标准库(SPL)里甚至提供了三个接口SplSubject, SplObserver, SplObjectStorage来让开发者更容易地实现观...

    lei___ 评论0 收藏0
  • Laravel最佳实践--事件驱动编程

    摘要:事件驱动编程是图形用户界面和其他应用程序例如应用程序中使用的主要范例,用于执行某些操作来响应用户输入。我们来看一下事件驱动编程带来的收益。现在让我们看看采用事件驱动编程方法如何实现上述相同的功能。 在这篇文章中我们将了解到什么是事件驱动编程以及在Laravel中如何开始构建一个事件驱动应用,同时我们还将看到如何通过事件驱动编程来对应用程序的逻辑进行解耦。 在开始之前,先说明一下这篇文章...

    Drummor 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<