Java中的委托事件模型

时间:2011-05-25 13:12:42

标签: java

我很难理解Java中的DEM(委托事件模型)。在阅读this question with answers之后,我没有得到我需要的解释。

使用DEM的动机是什么?

我在以前看到的例子中的观察结果是:

  • 有一个包含听众列表的模型。
  • 该模型还有fireThisOrThat()之类的方法,可以通过addThisOrThat等其他方法调用。

我将在即将到来的考试中得到这个,这就是为什么我需要理解它以及如何使用它。

2 个答案:

答案 0 :(得分:3)

委托意味着源生成事件并将其发送给一个或多个侦听器。

Java Swing是一个很好的委托示例。 Swing对象(如JButton)将生成事件。在JButton的示例中,事件是按钮图像接收到左键单击(按下按钮)。

任意数量的其他对象都可以收听JButton。这允许由于JButton事件而发生一个或多个事件操作。

假设您有JTextArea。您可以在JButton上拥有一个侦听器,以便JButton触发鼠标左键单击事件时,JTextArea侦听器会编辑文本并将文本写入数据库。换句话说,您按下(左键单击)屏幕上的按钮,JTextArea中的文本将写入数据库。

通过使用委派,JButtonJTextArea不会耦合在一起。您可以将JTextArea替换为另一个Swing组件,Swing组件仍可以一起使用。

答案 1 :(得分:0)

在委托事件模型中,源生成事件并将其发送给一个或多个侦听器。在这里,监听器等待直到它收到一个事件。一旦侦听器收到事件,它就会处理该事件然后返回。 这种设计的优点是处理事件的应用程序逻辑与生成这些事件的用户界面明显分开。

在委托事件模型中,侦听器必须向源注册才能接收事件通知。这样做的好处是通知只发送给那些想要接收它们的监听器。