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