标签:
1:流程驱动:类似 一般就是主动轮询 在干活中还要分心 主动去找活干 这样有空余的时间也完全浪费掉了
2:事件驱动:类似 比如公司有一个oa系统 你干完活的时候只需要看下oa系统有没分配给你活 没有可以干自己的事 不用担心还有其他事没干完
3者对比
采用警觉式者主动去轮询 ( polling),行为取决于自身的观察判断,是流程驱动 的,符合常规的流程驱动式编程 ( Flow-Driven Programming)的模式。采用托付式者被动等通知 (notification),行为取决于外来的突发事件,是事件驱动 的,符合事件驱动式编程 ( Event-Driven Programming,简称 EDP)的模式。
事件驱动过程:事件源 事件管理器 事件处理器 由事件源发表事件 由事件管理器来决定分派事件给事件处理器来处理(只有在高层注册过的事件才会分派)
一般架构上都是分成 然后高层调用底层 底层不依赖高层 这样保证了代码的扩展性和重用性
但是事件驱动是由回调函数来完成 高层绑定事件 由底层来调用 这样实现局部的控制反转 由底层来决定什么时候调用回掉方法 这样高层只需要交代找我的时候需要做啥 就什么都不用管了等待底层调用就行 如果回调函数在调用的下层方法里立即执行 就实现了代码上的解耦 如果是异步调用回掉方法 就是实现了时间上的解耦
标签:
原文地址:http://www.cnblogs.com/wzjbk/p/5929036.html