今天遇到一个需求总算是需要使用到callback了, 我记录一下。
需求是:
后台会不定期的产生一条新数据,需要保存到本地文本,前端的UI界面表格里面也得实时的更新展示。
然后我梳理了一下简图:
这种场景最适合使用回调的方式去解决,
// 模拟后台发送消息
public class Client {
public static void main(String[] args) {
CallbackExample example = new CallbackExample();
int newMassage = 99;
// 创建匿名类实现回调接口
Callback callback = new Callback() {
@Override
public void onCallback(int[] temp) {
temp[0] = temp[0] + newMassage;
System.out.println("回调函数被调用了!");
}
};
// 执行包含回调函数的操作
example.performCallback(callback);
}
}
// 接口
public interface Callback {
void onCallback(int[] temp);
}
// 模拟前端
public class CallbackExample {
public void performCallback(Callback callback) {
// 执行某些操作
int[] temp = {1};
System.out.println(temp[0]);
// 在适当的时间调用回调函数
callback.onCallback(temp);
System.out.println(temp[0]);
}
}
out:
1
回调函数被调用了!
100
只要在回调函数里面传递的是引用数据类型,就能在后台操作前端需要展示的数据了。
下面是一些Java中常见的引用数据类型:
- 类(Class):类是一种引用数据类型,它定义了对象的属性和行为。可以创建多个类的实例(对象)并对其进行操作。
- 接口(Interface):接口是一种引用数据类型,它定义了一组方法的规范,但没有提供实现。类可以实现一个或多个接口。
- 数组(Array):数组是一种引用数据类型,它可以存储相同类型的多个值。数组的长度在创建时确定,并且可以通过索引访问和修改数组元素。
- 枚举(Enum):枚举是一种引用数据类型,它定义了一组命名的常量。枚举可以用于表示一组相关的常量值。