zoukankan      html  css  js  c++  java
  • 事件驱动与流程驱动

    1:流程驱动:类似 一般就是主动轮询 在干活中还要分心 主动去找活干  这样有空余的时间也完全浪费掉了

    2:事件驱动:类似  比如公司有一个oa系统 你干完活的时候只需要看下oa系统有没分配给你活 没有可以干自己的事  不用担心还有其他事没干完

    3者对比

    采用警觉式者主动去轮询 ( polling),行为取决于自身的观察判断,是流程驱动 的,符合常规的流程驱动式编程 ( Flow-Driven Programming)的模式。采用托付式者被动等通知 (notification),行为取决于外来的突发事件,是事件驱动 的,符合事件驱动式编程 ( Event-Driven Programming,简称 EDP)的模式。

    事件驱动过程:事件源  事件管理器 事件处理器   由事件源发表事件  由事件管理器来决定分派事件给事件处理器来处理(只有在高层注册过的事件才会分派)

    一般架构上都是分成 然后高层调用底层  底层不依赖高层 这样保证了代码的扩展性和重用性

    但是事件驱动是由回调函数来完成 高层绑定事件 由底层来调用  这样实现局部的控制反转 由底层来决定什么时候调用回掉方法 这样高层只需要交代找我的时候需要做啥 就什么都不用管了等待底层调用就行  如果回调函数在调用的下层方法里立即执行 就实现了代码上的解耦  如果是异步调用回掉方法 就是实现了时间上的解耦

  • 相关阅读:
    功能:Java注解的介绍和反射使用
    功能:@Vaild注解使用及扩展
    转载:微信小程序view布局
    功能:Java8新特性steam流
    功能:Linux运行jar包Shell脚本
    转载:Windows使用tail -f 监控文件
    转载:java.math.BigDecimal 比较大小
    问题:跨域及解决方案
    基于 @SelectProvider 注解实现无侵入的通用Dao
    SpringBoot中的异步操作与线程池
  • 原文地址:https://www.cnblogs.com/wzjbk/p/5929036.html
Copyright © 2011-2022 走看看