美文网首页
ONOS控制器中的事件监听器

ONOS控制器中的事件监听器

作者: 铛铛铛铛铛_9003 | 来源:发表于2018-10-11 23:13 被阅读0次

事件监听器其实是观察者模式的一种实现

Subject为抽象主题接口,定义了主题类中对观察者列表的一系列操作, 包括增

Concretes Subject为具体主题类,实现抽象主题接口,在这个类中我们需要先定义一个Observers列表,并对接口中的方法进行重写,在实现notifaObservers方法时,通过迭代的方式调用list中每一个observer的update方法。这里注意notifyObservers中的同步块。在多线程的情况下, 为了避免主题类发布通知时, 其他线程对观察者列表的增删操作, 同步块中用一个临时List来获取当前的观察者列表。

Observer为抽象观察者接口,定义了观察者对主题类更新状态接受操作

ConcreteObserver为具体观察者类,实现观察者接口更新主题类通知等逻辑

事件监听器的逻辑结构如图所示

观察者(Observer)相当于事件监听者,被观察者(Observable)或者说主题(Subject)相当于事件源和事件,执行逻辑时通知observer即可触发oberver的update,同时可传被观察者和参数。

EventListener为事件监听器的父类接口

IntentListener接口继承了EventListener接口,并制定监听的对象为IntentEvent

IntentManager继承了父类AbstractListenerManager,AbstractListenerManager相当于事件源,在这里实现了注册listener,移除listener和post方法。在这里,nofity方法相当于post,当出现intent event,intentManager负责调用通知eventDispatcher,再由eventDispatcher负责具体事件的分发。

eventDispatcher接口定义了post方法,eventdeliveryService继承了eventdispatcher接口并定义了一个新方法来控制event sink处理event的时间。

coreEventDispatcher类继承了defaultEventSinkRegistry并实现了eventDeverliveryService接口,负责具体事件分发处理。

相关文章

  • ONOS控制器中的事件监听器

    事件监听器其实是观察者模式的一种实现 Subject为抽象主题接口,定义了主题类中对观察者列表的一系列操作, 包括...

  • onos集群——controllerNode

    onos实现了controllerNode接口,将一个控制器实例表示为集群中的一个成员。 controllerNo...

  • 5.4Laravel事件

    事件 更多详细请参看laravel手册 事件/监听器 事件类存放位置:app/Event 目录中 监听器存放位置:...

  • 46. 服务容器 自动注入

    你可以简单地使用「类型提示」的方式在由容器解析的类的构造函数中添加依赖项,包括 控制器、事件监听器、队列任务、中间...

  • Web笔记-Listener

    事件源、事件、监听器 事件源:发生事件的对象 事件:事件封装了事件源,方便监听器的某个方法获取到事件源对象 监听器...

  • 专家推荐这次终于把Spring的监听器讲明白了

    (一)Spring中的监听器 监听器可以在使用过程时监听某些事件的发生,然后对这些事件做出响应处理。监听器对应用场...

  • 基于SpringBoot和注解实现优雅的事件监听器

    1. 了解事件监听器 事件监听器包括3个部分,事件、事件源、事件监听器。 事件,主要用于传递参数,例如用户登录,可...

  • laravel Event 事件使用

    Event的使用主要分为三步: ①注册事件监听器映射关系 ②定义监听器 ③触发事件 ①注册事件监听器映射关系 在a...

  • Java事件处理和内部类

    事件处理过程 1.实现某种监听器接口的监听器类并将该类的对象添加到事件源中2.外部动作产生事件3.事件源产生事件对...

  • 事件委托

    使用事件委托技术能让你避免对特定的每个节点添加事件监听器;相反,事件监听器是被添加到它们的父元素上。事件监听器会分...

网友评论

      本文标题:ONOS控制器中的事件监听器

      本文链接:https://www.haomeiwen.com/subject/gibxgftx.html