避免在 Java 中使用“instanceof”
2022-08-31 15:25:03
我有以下(也许是常见的)问题,目前它绝对让我感到困惑:
有几个生成的事件对象扩展了抽象类,我想将它们划分为会话Bean,例如Event
public void divideEvent(Event event) {
if (event instanceof DocumentEvent) {
documentGenerator.gerenateDocument(event);
} else if (event instanceof MailEvent) {
deliveryManager.deliverMail(event);
...
}
...
}
但是将来可能会有两种以上的事件类型,因此 if-else 会很长,可能不可读。此外,我认为在这种情况下并不是真正的“最佳实践”。instanceof
我可以向类型中添加一个抽象方法,并让它们自行划分,但随后我必须在每个实体中注入特定的会话Bean。Event
是否有任何提示可以解决此问题的“漂亮”解决方案?
感谢您的任何帮助!