事件驅動編程
(由事件處理器跳轉過嚟)
事件驅動編程(英文:event-driven programming,EDP)係一種編程範式,個程式嘅流動由事件(撳咗某個掣等)控制。一個用 EDP 寫嘅程式會有個主迴圈:當個程式處於主迴圈嗰陣,部電腦會進入「等事件發生」噉嘅狀態,而事件可以包括[1]-
... 呀噉。個程式會同每件事件指定一段特定嘅子程序,叫部電腦每當嗰件事件發生嗰時,就做掕住嗰件事件嘅程序;簡化講例如想像一個遊戲程式,教部電腦「一旦用家撳咗遊戲手掣上面嘅 B 掣(事件發生),就要玩家角色起跳(子程序)」、「一旦用家撳咗遊戲手掣上面嘅 A 掣(事件發生),就要玩家角色向前衝(子程序)」... 呀噉。
喺廿一世紀初,EDP 係圖像用家介面上嘅標準做法,而且喺遊戲編程上都成日用到。有好多程式語言都支援用家攞 EDP 寫程式,例子有 Java 程式語言噉。
基本諗頭
編輯内文:事件 (運算)
EDP 嘅根基係事件嘅概念。電腦程式編寫上講嘅「事件」,係指由隻軟件留意到嘅一個行動或者一件事件,例如係「踎士左掣畀人撳咗」或者「鍵盤上邊個邊個掣畀人撳咗」... 呀噉。唔跟 EDP 嘅程式通常會係噉嘅[2][3]:p.5:
而跟 EDP 嘅程式望落會比較似以下噉嘅流程[3][4]:p.1:
要圖像化嘅話,可以想像下圖:
實行
編輯用虛擬碼噉嘅形式表達嘅話,EDP 啲碼望落通常大致上會係噉嘅[5]:
OnKeyEnter("A") # 如果用家撳咗鍵盤上面 "A" 掣嘅話... { ... # ... 就要做呢個 { } 入面嘅嘢。(睇埋子程序嘅概念) } OnKeyEnter("B") # 如果用家撳咗鍵盤上面 "B" 掣嘅話... { ... # ... 就要做呢個 { } 入面嘅嘢。 } OnKeyEnter("C") # 如果用家撳咗鍵盤上面 "C" 掣嘅話... { ... # ... 就要做呢個 { } 入面嘅嘢。 }
睇埋
編輯引咗
編輯以下係呢篇文用咗嘅重要概念嘅英文名:
- ↑ Lukkarinen, A., Malmi, L., & Haaranen, L. (2021). Event-driven programming in programming education: a mapping review (PDF). ACM Transactions on Computing Education (TOCE), 21(1), 1-31.
- ↑ Woodworth, P., & Dann, W. (1999). Integrating console and Event-Driven models in CS1. ACM SIGCSE Bulletin, 31(1), 132-135.
- ↑ 3.0 3.1 COMP6700/2140 GUI and Event Driven Programming (PDF).
- ↑ Dabek, F., Zeldovich, N., Kaashoek, F., Mazieres, D., & Morris, R. (2002, July). Event-driven programming for robust software (PDF). In Proceedings of the 10th workshop on ACM SIGOPS European workshop (pp. 186-189).
- ↑ Unity EventSystem - Part 1 EventSystem and Design Pattern. Medium.
拎
編輯- (英文) Lukkarinen, A., Malmi, L., & Haaranen, L. (2021). Event-driven programming in programming education: a mapping review (PDF). ACM Transactions on Computing Education (TOCE), 21(1), 1-31.
- (英文) Explain Event-Driven Programming in Node.js. GeeksForGeeks.
- (英文) Event-Driven Programming, tutorial by Alan Gauld