事件驅動與流程驅動

2022-03-05 02:58:19 字數 665 閱讀 8255

1:流程驅動:類似 一般就是主動輪詢 在幹活中還要分心 主動去找活幹  這樣有空餘的時間也完全浪費掉了

2:事件驅動:類似  比如公司有乙個oa系統 你幹完活的時候只需要看下oa系統有沒分配給你活 沒有可以幹自己的事  不用擔心還有其他事沒幹完

3者對比

採用警覺式者主動去輪詢( polling),行為取決於自身的觀察判斷,是流程驅動 的,符合常規的流程驅動式程式設計 ( flow-driven programming)的模式。採用託付式者被動等通知(notification),行為取決於外來的突發事件,是事件驅動 的,符合事件驅動式程式設計 ( event-driven programming,簡稱 edp)的模式。

事件驅動過程:事件源  事件管理器 事件處理器   由事件源發表事件  由事件管理器來決定分派事件給事件處理器來處理(只有在高層註冊過的事件才會分派)

一般架構上都是分成 然後高層呼叫底層  底層不依賴高層 這樣保證了**的擴充套件性和重用性

但是事件驅動是由**函式來完成 高層繫結事件 由底層來呼叫  這樣實現區域性的控制反轉 由底層來決定什麼時候呼叫回掉方法 這樣高層只需要交代找我的時候需要做啥 就什麼都不用管了等待底層呼叫就行  如果**函式在呼叫的下層方法裡立即執行 就實現了**上的解耦  如果是非同步呼叫回掉方法 就是實現了時間上的解耦

驅動python python實現事件驅動

eventmanager事件管理類實現,大概就百來行 左右。encoding utf 8 系統模組 from queue import queue,empty from threading import class eventmanager def init self 初始化事件管理器 事件物件列表...

事件驅動模型

事件代表過去發生的事件,事件既是技術架構概念,也是業務概念。以事件為驅動的程式設計模型稱為事件驅動架構eda。eda是一種以事件為媒介,實現元件或服務之間最大松耦合的方式。傳統面向介面程式設計是以介面為媒介,實現呼叫介面者和介面實現者之間的解耦,但是這種解耦程度不是很高,如果介面發生變化,雙方 都需...

事件驅動eda

事件代表過去發生的事件,事件既是技術架構概念,也是業務概念。以事件為驅動的程式設計模型稱為事件驅動架構eda。eda是一種以事件為媒介,實現元件或服務之間最大松耦合的方式。傳統面向介面程式設計是以介面為媒介,實現呼叫介面者和介面實現者之間的解耦,但是這種解耦程度不是很高,如果介面發生變化,雙方 都需...