java - 听众和表演
问题描述
我有一个关于听众和表演的问题。例如:我有 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,我会影响性能吗?
谢谢
解决方案
我会通过使用单个侦听器来使其更简单。很有可能,您也想在其他地方收听所有五个事件,并且总是创建五个类并不能使它更干净。很有可能,您添加了第六个听众....
虽然可能不赞成打开事件类型,但它本身并不会使您的代码变得更糟。只需在固定情况下使用其他方法来保持切换方法较小。这也使得它更简单,以防您以后改变主意。
推荐阅读
- linux - 在 Linux 中比较 2 个文件夹中每个字节的文件字节并查找重复项
- forms - 如何防止更新 CakePHP 3 beforesave() 中的字段?
- python - 如何根据 urls.py Django 中某个查询参数的值将 URL 路由到单独的视图?
- excel - 运行时错误 91 VBA - 尝试设置工作表但它一直说运行时错误?
- html - 具有自定义设计的侧导航栏
- javascript - 使用父滚动条而不是带有 Angular 虚拟滚动的子组件滚动条
- python - 如何使用 tensorflow 摄取分片 CSV
- docker - Google 容器注册表权限
- javascript - 如何让第二个动画开始,只有在第一个动画完成使用 Javascript 回调之后?
- python - 将 Excel zip 文件内容转换为实际的 Excel 文件?