首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

淺析 Java 與 C# 事件處理機制(一)

     編輯:關於C語言

核心架構差異

  • Java:事件源 ↔ 事件監聽者(二層實體)。監聽者實作 EventListener 介面,事件狀態封裝於 EventObject 子類。
  • C#:事件源 ↔ 委派 ↔ 事件處理器(三層實體)。委派作為型別安全的函數指標中介。

Java 事件模型要素

  1. 事件狀態物件:繼承 java.util.EventObject,慣命名以 Event 結尾(如 MouseMovedEvent)。
  2. 事件監聽者介面:繼承 java.util.EventListener,定義響應方法(如 mouseMoved(MouseEvent e))。
  3. 事件源:提供 addXxxListener / removeXxxListener 註冊方法。
  4. 適配器類別(可選):介入源與監聽者之間,負責分派/過濾。

事件狀態物件範例


public class MouseMovedEvent extends java.util.EventObject {
    protected int x, y;
    public MouseMovedEvent(Component src, Point loc) {
        super(src); x = loc.x; y = loc.y;
    }
    public Point getLocation() => new Point(x, y);
}

C# 則以委派統一封裝「發送者」與「事件參數」,簡化介面定義與註冊流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved