【问题标题】:Delegation Event Model in JavaJava中的委托事件模型
【发布时间】:2017-06-09 23:14:48
【问题描述】:

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

使用 DEM 的动机是什么?

我在所见示例中的观察结果是:

  • 有一个模型,其中包含一个侦听器列表。
  • 该模型还有一个像 fireThisOrThat() 这样的方法,可以从像 addThisOrThat 这样的其他方法调用。

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

【问题讨论】:

    标签: java


    【解决方案1】:

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

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

    任何数量的其他对象都可以监听JButton。这允许作为JButton 事件的结果发生一个或多个事件操作。

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

    通过使用委托,JButtonJTextArea 不会耦合在一起。您可以将JTextArea 替换为另一个 Swing 组件,并且 Swing 组件仍然可以协同工作。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多