通知对象发生了什么 - 侦听器对象?

时间:2013-12-18 01:17:12

标签: java interface

我需要一些Java代码的帮助。我想知道如何通知对象发生了什么事。让我解释一下。

我有两个名为“Julie”和“Matt”的Person对象。 Julie有时会在不久的将来得到一个lolipop,但Matt不知道什么时候(Julie也不知道)。但马特想知道朱莉什么时候会得到lolipop。他希望得到通知。

请注意:

  • 我不是在问Observable如何做到这一点
  • 我需要知道如何使用我自己的界面或完成此任务所需的任何内容

请看我的草图。

enter image description here

1 个答案:

答案 0 :(得分:0)

最简单的答案可能是与马莉一起存储对马特的引用。然后,设置Julie以便她只能通过单一网关方法“接收”棒棒糖,例如setLollipop(boolean b)。

在这个方法中,您可以使用Matt的引用在Matt中设置一个标志,显示Julie收到Lollipop,或者在Matt的引用上调用一个方法来设置一些动作。

在我看来,Matt与Julie“注册”的行为是一种简单的“观察者”设计模式,但没有使用EventListeners或Observable接口。

如果我正确地记住我的模式,在Julie中使用一种方法称Matt是一个“推动”并且让Matt签入Julie是一种“拉”式的通知。但是我没有预订模式,可能会有些混乱。