事件驅動程式設計

事件驅動程式設計(英語:Event-driven programming)是一種電腦程式設計模型。這種模型的程式運行流程是由用戶的動作(如滑鼠的按鍵,鍵盤的按鍵動作)或者是由其他程式的訊息來決定的。相對於批處理程式設計(batch programming)而言,程式運行的流程是由程式設計師來決定。批量的程式設計在初級程式設計教學課程上是一種方式。然而,事件驅動程式設計這種設計模型是在互動程式(Interactive program)的情況下孕育而生的。 事件驅動程式可以由任何程式語言來實現,然而使用某些語言來撰寫會比其他的語言來的簡單。有些集成開發環境(簡稱IDE)也會影響實現事件驅動程式設計的難易程度。有的 IDE 會使的開發工作變的很簡單,有的則否。

概述

取代傳統上一次等待一個完整的指令然後再做運行的方式,事件驅動程式模型下的系統,基本上的架構是預先設計一個事件循環所形成的程式,這個事件循環程式不斷地檢查目前要處理的信息,根據要處理的信息運行一個 觸發函式進行必要的處理。其中這個外部信息可能來自一個目錄夾中的檔案,可能來自鍵盤或滑鼠的動作,或者是一個時間事件。

對一個事件驅動(event driven)系統進行程式設計,因此可以視為改寫系統默認觸發函式的行為,來匹配自己需要的一種動作。輸入的事件可以放進事件循環或者是經由已經註冊的中斷處理器來與硬體事件互動;而許多的軟體系統使用了混和這兩種技術的處理。預先設計好的算法確定了一件事,那就是當他們被需要的時候,就會在適當的時機被觸發。也因此提供了一個模擬中斷驅動環境(interrupt driven environment)的軟體抽象架構。事件驅動程式設計基本上包含了許多小程式片段,這些小程式片段被稱為事件處理器並且被用來回應外部的事件與分發事件。通常尚未被事件處理器處理的事件,都會被系統放在一個稱為事件佇列的數據結構中,等待被處理。

許多情況下,事件處理器可以自己觸發事件,因此也可能形成一個事件串。 事件驅動程式設計的著重於彈性以及異步化上面,並且企圖儘可能的modeless。圖形用戶界面這類程式就是典型的事件驅動設計方式。

計算機作業系統是事件驅動程式的典型示例。在作業系統的最底層,中斷處理器的動作就像是硬體事件的直接處理器,搭配著 CPU 運行分配事件規則動作。對軟體進程而言,基本上作業系統可視為一個事件分配器,傳送數據和軟體中斷給用戶自己寫的軟體進程。

相對應於批處理程式設計

下面是兩個數相加的示例,分別用批量版本與事件驅動版本來撰寫。

批量版本

事件驅動版本

相關詞條

熱門詞條

聯絡我們