首页 > 解决方案 > 听众和表演

问题描述

我有一个关于听众和表演的问题。例如:我有 5 节课: + 添加附件监听器 + 优先级字段更改监听器 + 添加评论监听器 + 更改问题监听器状态 + 更改受托人监听器 所有班级都将监听

@EventListener
  public void onIssueEvent(IssueEvent issueEvent) {
// Do some thing
}

我为这个问题实现了 2 种方法选项 1:我注册了 5 个类,如下所示:

eventPublisher.register(AddAttachmentListener.class);
eventPublisher.register(PriorityFieldChangeListener.class);
eventPublisher.register(AddCommentListener.class);
eventPublisher.register(ChangeStatusOfIssueListener.class);
eventPublisher.register(ChangeAssigneeListener.class);

并在每个类函数 onIssueEvent() 中使用

选项2:我只注册一个类:

eventPublisher.register(IssueEventListener.class);

在 onIssueEvent() 函数中,我将切换到每个事件。

但是,如果我注册 5 个类,它会使代码更清晰,更易于阅读。

那么,我可以遵循哪个选项?如果我使用选项 1,我会影响性能吗?

谢谢

标签: javaperformancelistenerjira

解决方案


我会通过使用单个侦听器来使其更简单。很有可能,您也想在其他地方收听所有五个事件,并且总是创建五个类并不能使它更干净。很有可能,您添加了第六个听众....

虽然可能不赞成打开事件类型,但它本身并不会使您的代码变得更糟。只需在固定情况下使用其他方法来保持切换方法较小。这也使得它更简单,以防您以后改变主意。


推荐阅读