非Swing应用程序中的观察者模式

时间:2011-07-21 16:25:48

标签: java design-patterns

观察者模式在基于Swing的应用程序中非常常用。任何人都可以提供这种模式的实际例子,可用于非Swing,pojo应用程序吗?

4 个答案:

答案 0 :(得分:3)

在Java库中,几乎所有Listener形式的接口(包括AWT listeners,但还有其他接口)都指向使用观察者模式。 java.util.Observable / Observer中还有一个基本实现,java.beans.PropertyChangeSupport中有另一个实现

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

我使用观察者模式(与单例一起)来反映应用程序中的DB更改。

每个数据库更新都通过一个单独的观察者进行,其中有两个其他组件被注册。在我的例子中,它是一个词汇学习应用程序,因此当输入新单词时,测试的组件责任会被通知更改并准备好进行更新测试。 另一个组件,更新您不关心的GUI。即使最后的测试也与GUI有关。