我对收听者和演奏有疑问。 例如: 我有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,是否会影响性能?
谢谢
答案 0 :(得分:0)
好问题。同意5个单独的班级将使您的学习更加干净。但是您只能根据自己的未来需求做出此决定。如果需要为事件添加更多的业务逻辑事件,则选择选项1;如果事件或业务逻辑的机会有限,则选择选项2。
通过在选项2中添加简洁明了的注释,您还可以管理简洁的编码。
对于大型应用程序,选择选项1;对于小型应用程序,选择选项2。某种微服务使应用程序干净且松散耦合。
答案 1 :(得分:0)
我将使用单个侦听器来简化它。您很可能也想在其他地方收听所有五个事件,并且始终创建五个类并不会使它更干净。您可能会添加第六个侦听器。...
虽然可能不赞成打开事件类型,但它本身不会使您的代码变得更糟。只需在固定情况下使用其他方法来保持较小的切换方法即可。这也使事情变得更简单,以防日后改变主意。