【发布时间】:2011-09-03 17:02:46
【问题描述】:
我有以下(可能是常见的)问题,这让我很困惑:
有几个生成的事件对象扩展了抽象类Event,我想将它们划分为会话 Bean,例如
public void divideEvent(Event event) {
if (event instanceof DocumentEvent) {
documentGenerator.gerenateDocument(event);
} else if (event instanceof MailEvent) {
deliveryManager.deliverMail(event);
...
}
...
}
但将来可能会有两种以上的事件类型,因此 if-else 会很长并且可能无法读取。此外,我认为instanceof 在这种情况下并不是真正的“最佳实践”。
我可以向Event 类型添加一个抽象方法并让它们自行划分,但是我必须在每个实体中注入特定的会话 Bean。
有什么提示可以为这个问题找到一个“漂亮”的解决方案吗?
感谢您的帮助!
【问题讨论】:
-
1+ 表示希望坚持良好的 OOP 实践。
-
也许这篇文章涵盖了它? Dynamic Dispatching
标签: java oop instanceof