當多個監聽者需篩選響應時,插入適配器:事件源註冊適配器,適配器決定轉發給哪些真實監聽者。多數 IDE 產生代碼皆採此模式。
public event EventHandler Click;public delegate void EventHandler(object sender, EventArgs e); —— 類型安全的函數指標。btn.Click += new EventHandler(Handler); / -=處理器不拘泥於固定簽名,只要符合委派定義即可。自訂委派範例:
delegate int MyHandler(object sender, ToolBarButtonClickEventArgs e);
int MyMethod(object s, ToolBarButtonClickEventArgs e) { ... }
ctrl.Event += new MyHandler(MyMethod);
| 面向 | Java | C# |
|---|---|---|
| 架構 | 源-監聽者(二層) | 源-委派-處理器(三層) |
| 耦合度 | 較高 | 鬆散(委派中介) |
| 彈性 | 需適配器類別 | 原生支援多播、動態綁定 |
C# 委派機制讓事件系統更靈活、型別安全,且無需手寫適配器。