Java 程式設計 -- Callback 與 Listener 機制
来源:互联网 发布:生意参谋和数据魔方 编辑:程序博客网 时间:2024/05/12 16:37
转自:《http://ccckmit.wikidot.com/ja:listener》
專案下載:Listener.zip
簡介
在 Java 當中沒有像 C# 當中的委派 (delegate) 語法,所有的委派任務都交由一種稱為 Listener 的物件完成,其實作方法乃是利用 Register - Callback 的反向呼叫機制,為了說明這個機制的原理,我們撰寫了以下的程式,以便說明 Listener - Callback 的實作原理。
程式範例
檔案:Listener.java
interface Listener { void onEvent(String str);}
檔案:EventListener.java
public class EventListener implements Listener { String name; public EventListener(String name) { this.name = name; } public void onEvent(String str) { System.out.println(name+":"+str); }}
檔案:Callback.java
import java.util.*; public class Callback { List<Listener> listeners = new ArrayList<Listener>(); public static void main(String[] args) { Callback callback = new Callback(); callback.addListener(new EventListener("Listener 1")); callback.addListener(new EventListener("Listener 2")); callback.addListener(new EventListener("Listener 3")); callback.trigger("Hello!"); callback.trigger("你好!"); } public void addListener(Listener listener) { listeners.add(listener); } public void trigger(String msg) { for (int i=0; i<listeners.size(); i++) { listeners.get(i).onEvent(msg); } }}
執行結果
Listener 1:Hello!Listener 2:Hello!Listener 3:Hello!Listener 1:你好!Listener 2:你好!Listener 3:你好!
- Java 程式設計 -- Callback 與 Listener 機制
- Listener 和 Callback
- java callback
- java callback
- java callback
- Java callback
- Java Listener
- 程式設計之道 冼鏡光
- Google 手機程式設計
- Google 手機程式設計
- Google 手機程式設計
- Linux RS-232 程式設計
- 喜愛的程式設計名言
- 程式設計之道-Viscosity
- Android程式設計 - 如何中止Thread
- JAVA是什么?--程式先锋
- java打印程式设计
- Java Bluetooth 程式開發入門
- C#工厂设计模式
- js校验方法(补充ing)
- Container With Most Water leetcode
- 漂亮的网站
- 组队赛130827 - from lanshui_Yang
- Java 程式設計 -- Callback 與 Listener 機制
- EBS Form中FND_Message的用法总结
- ADB server didn't ACK
- 堆与堆排序
- 一个好用的js分页
- Java学习笔记之 类与对象1
- 内存泄漏常见情况及解决方法
- Open vSwitch 使用
- 栈的实现