Callback 的实践

发布时间 2023-11-01 15:48:07作者: Mysticbinary

今天遇到一个需求总算是需要使用到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):枚举是一种引用数据类型,它定义了一组命名的常量。枚举可以用于表示一组相关的常量值。