官术网_书友最值得收藏!

第2章 事件

在計算機(jī)科學(xué)里,事件指的是系統(tǒng)內(nèi)發(fā)生的某件事或變化,可以被某個程序接收并處理。它可以是用戶輸入導(dǎo)致的,例如按鍵、單擊鼠標(biāo);可以是網(wǎng)絡(luò)通信導(dǎo)致的,例如Web服務(wù)器接收到一個請求,郵件服務(wù)器收到一封郵件;也可以僅僅作為不同對象之間控制流程轉(zhuǎn)移的一種手段,例如為程序自定義的事件。所有這些情況都被抽象出一套共同的機(jī)制,用于有效地處理事件參與者之間的互動。這個機(jī)制包含以下幾個組成部分:事件的源/發(fā)布者、事件的收聽者/訂閱者/處理器以及收聽者與發(fā)布者之間如何處理事件的協(xié)議,包括收聽者用于處理事件的方法的簽名、發(fā)布者傳遞給收聽者的事件信息。事件機(jī)制在圖形界面軟件開發(fā)、網(wǎng)絡(luò)編程等領(lǐng)域都有廣泛的應(yīng)用,圍繞它進(jìn)行的編程范式被稱為事件驅(qū)動編程。

事件與編程中的許多其他概念既有聯(lián)系也有區(qū)別,如控制反轉(zhuǎn)(Inversion of control)、回調(diào)函數(shù)(Callback function)和觀察者模式(Observer pattern)。把事件和它們放在一起討論比較有助于更清楚地理解各自的內(nèi)涵和用途。之后本章將重點分析Java、C#和JavaScript三種語言中事件編程的不同實現(xiàn)方式和特點,以更充分地揭示事件的本質(zhì),并且例示一個理念在不同語言中相映成趣的表現(xiàn)形式——這既能體現(xiàn)理念的一般性,又極好地展示了編程語言由于設(shè)計之差異在解決問題的方式和表現(xiàn)力上的多樣性。

主站蜘蛛池模板: 开鲁县| 济南市| 筠连县| 山阴县| 丰原市| 迁西县| 图片| 五指山市| 岢岚县| 呼图壁县| 彭山县| 河北区| 陆丰市| 西贡区| 明水县| 雷州市| 综艺| 吉首市| 延川县| 屏东县| 榆林市| 澎湖县| 西城区| 麦盖提县| 锦州市| 社旗县| 永春县| 集贤县| 监利县| 香港| 甘洛县| 德阳市| 湘潭市| 安庆市| 平定县| 南宫市| 子长县| 盐亭县| 安吉县| 涞源县| 永城市|