事件委派模型和事件继承模型之间有什么区别?

时间:2012-05-08 10:49:21

标签: java swing inheritance awt composition

我尝试搜索Event-Delegation ModelEvent-Inheritance Model之间的差异,但没有找到具体到足以区分这两者的答案。

这两个模型之间的真正的差异是什么?在什么情况下它们被认为是有效的解决方案?

2 个答案:

答案 0 :(得分:1)

据我所知,事件继承模型让发起者将所有消息发送给所有观察者。观察者负责决定应用哪些消息。该模型的优点是多个观察者可以处理相同的消息。这种模式的缺点是,当你有很多发起者和观察者时,它会很快变得复杂。

事件委托模型要求观察者向发起者注册。如果启动器只有一个注册方法,那么这类似于事件继承模型。当启动器具有多个注册方法时,启动器能够仅向需要该消息的观察者发送消息。当你有很多发起者和很多观察者时,事件委托模型会更好地扩展。

答案 1 :(得分:0)

事件委托模型比事件继承模型有两个优点。

  • 它通过处理事件或其容器生成的对象以外的对象来启用事件处理。它明确区分了组件设计及其用途。

  • 在生成更多事件的应用程序中,它的表现要好得多。正是因为事实,这个模型不需要重复处理未处理的事件,事件继承模型就是这种情况