2011-07-21 32 views

回答

2

观察者模式有很多应用程序,很多都不涉及GUI。例如,考虑您正在编写股票市场应用程序。您想知道股票价格何时发生变化。

而不是查询每只股票的价格,请将您的观察员注册到中央股票经纪商,然后让他在每次价格变动时通知您。

这些例子无数。无论何时您想拥有关于系统的状态或其他信息,而不是每隔几秒轮询一次,请注册一个观察者并让他通知您,而不是每隔几秒钟通知您

+0

我需要一个或两个具体的例子。你能否详细说明一下股票市场的例子? – Partha

0

监听器模式在JVM本身中使用了很多。

例如在Java Management Extensions (JMX)中,您可以注册异步侦听器(名为notifications),只要满足某些条件(如低内存),JVM就会发出异步侦听器。

我也可以想到Wicket框架,但它实际上受到GUI构建概念中的Swing的强烈影响。

0

我使用观察者模式(与单例相结合)来反映应用程序中的数据库更改。

每个数据库更新都是通过其他2个组件注册的单例观察器发生的。在我的情况下,这是一个词汇学习应用程序,因此,当输入新单词时,测试的组件负责人将被通知更改并准备好更新测试。 另一个组件,更新您不关心的GUI。尽管最后的测试与GUI相关。