2011-11-09 186 views
2

我已经构建了一个具有控制对象速度的JSlider的小应用程序。当滑块检测到其状态发生变化时,对象的速度会适当变化。我想知道我是否利用了观察者模式。维基百科指出,观察者模式“是一种软件设计模式,其中一个称为主题的对象维护着一个名为观察者的依赖项列表,并通常通过调用其中一种方法自动通知它们状态的变化。主要用于实现分布式事件处理系统“。在我的代码,只要在JSlider的变化来检测一小块代码自动执行通过改变物体的速度:了解观察者模式

slider.addChangeListener(
      new ChangeListener(){ 
       public void stateChanged(ChangeEvent e){ 
        horizSpeed = slider.getValue(); 
        sliderTitle.setText("Current Speed: " + horizSpeed); 
       } 
      } 
    ); 

我不认为它维护家属的名单维基百科要求,但我不确定。如果有人能够启发我观察者模式的微妙之处,我将不胜感激。谢谢!

+3

它是滑块,它有一个依赖列表。您只添加了一个项目。 – BalusC

回答

1

Slider主题addChangeListener增加了一个依赖于它的家属的名单。这是观察者模式的典型例子。

2

观察者也被称为发布 - 订阅。这个名字可能更具解释性。

你有什么是观察员,目前只有一个注册客户端。但是,addChangeListener可以注册多个侦听器。想象一下,如果你想在滑块高端时改变滑块的颜色。你想分开改变速度。