• javafx事件总线之EventBus


    JAVAFX EventBus是一个轻量级的事件总线框架,用于在JavaFX应用程序中实现基于事件的通信和解耦。它提供了一种简单的方式,让组件能够订阅和发布事件,从而使得应用程序中的各个组件能够相互通信,而不需要相互依赖。

    JAVAFX EventBus使用了观察者模式,它可以订阅和发布事件,事件的发布者和订阅者之间是解耦的关系。当发布者发布一个事件时,所有订阅者将会收到相应的通知,然后可以根据事件进行相应的处理。

    JAVAFX EventBus的主要特点包括:

    • 简单易用:使用简单,代码清晰,易于理解。
    • 轻量级:框架本身非常轻量,对应用程序的性能影响很小。
    • 松耦合:通过使用事件总线,各个组件之间可以实现松耦合,解除相互依赖的关系,提高应用程序的可维护性和可扩展性。
    • 线程安全:支持多线程操作,确保在多线程环境下的安全性。

    JAVAFX EventBus在各种类型的JavaFX应用程序中被广泛使用,包括桌面应用程序、移动应用程序、嵌入式应用程序等。它可以帮助开发人员构建更灵活、更可靠的应用程序。

    示例代码

    import com.google.common.eventbus.EventBus;
    
    /**  事件总线
     * @Author cpf
     * @Date 2023/9/9
     */
    
    public class EventBusUtil {
    
        private EventBusUtil(){
    
        }
    
        private final static EventBus eventBus = new EventBus();
    
        public static EventBus getDefault(){
            return eventBus;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    发送者

    // 参数可以是对象或基本类型参数
    EventBusUtil.getDefault().post(new HgBqImgSize());// 刷新列表
    
    • 1
    • 2

    订阅者

    @Subscribe
    public void eventHandling(HgBqImgSize imgSize){
         // 刷新列表的业务逻辑...
         
    }
    
    // 同时需要在EventBus中注册为订阅者
    	@Override
        public void initialize(URL location, ResourceBundle resources) {
           EventBusUtil.getDefault().register(this);
        }
        // 或者
        public ManageCuttingController() {
            EventBusUtil.getDefault().register(this);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    EventBus -> 主要用于参数传递或消息传递
    注: 订阅是根据参数的类型进行接收的; 比如说发送的时候是String类型, 那么订阅者的接收方法参数是String类型的都可以接收到

  • 相关阅读:
    OpenCV 图像与视频的基础操作
    promise怎么用?promise的各种使用方法及理解?
    Java线程池的实现——底层源码原理
    y98.第六章 微服务、服务网格及Envoy实战 -- 集群管理(九)
    leecode #加一#二进制求和
    【观察】华为陈帮华:学习“都江堰模式”,构筑强健分销体系
    最优孤岛划分下含分布式电源配电网可靠性评估附Matlab代码
    grafana 安装
    SpringSecurity(一)前言以及框架介绍
    react native模拟器 (夜神) unable to load script
  • 原文地址:https://blog.csdn.net/Cjava_math/article/details/132779767