回调接口模式
回调接口模式(Callback Interface Pattern)的核心是对象间的通信机制,它允许一个对象(通常是调用方)在特定事件或条件发生时,通过预先注册的接口方法通知另一个对象(回调方)。
回调接口模式示例
1. 定义回调接口
首先定义一个回调接口 Callback
,用于通知任务完成时的操作。
public interface Callback {void onComplete(String result);
}
2. 异步任务类
实现一个异步任务类 AsyncTask
,它接受一个 Callback
参数,并在任务完成后调用回调方法。
public class AsyncTask {private Callback callback;public AsyncTask(Callback callback) {this.callback = callback;}public void execute() {// 模拟耗时操作new Thread(() -> {try {Thread.sleep(2000); // 模拟延迟} catch (InterruptedException e) {e.printStackTrace();}String result = "任务已完成";callback.onComplete(result); // 调用回调}).start();}
}
3. 主程序调用
在主程序中,创建并启动异步任务,同时实现回调接口来处理任务完成后的逻辑。
public class Main {public static void main(String[] args) {// 注册回调并执行异步任务AsyncTask task = new AsyncTask(result -> {//具体实现的地方,当其他类拿不到这个注册类的某些对象时,可以使用回调机制等等System.out.println("收到回调: " + result);});task.execute();System.out.println("任务已启动,请等待完成...");}
}
运行结果
当程序运行时,输出如下:
任务已启动,请等待完成...
收到回调: 任务已完成
总结
- 回调接口:
Callback
接口定义了任务完成后需要执行的方法。 - 异步任务:
AsyncTask
类负责执行耗时操作,并在完成后触发回调。 - 主程序:通过实现回调接口,可以自定义任务完成后的处理逻辑。
这种方式广泛应用于异步编程、事件驱动模型以及 UI 框架中。