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;
    }
}

发送者

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

订阅者

@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);
    }

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微微一笑满城空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值