2011-11-09 8 views
2

オブジェクトの速度を制御するJSliderを持つ小さなアプリケーションを構築しました。スライダが状態の変化を検出すると、オブジェクトの速度が適切に変化します。私が作成したものがObserver Patternを利用しているかどうか疑問に思っていました。ウィキペディアは、「オブザーバーパターン」は、オブジェクトと呼ばれるオブジェクトがオブザーバーと呼ばれるオブザーバーのリストを保持し、状態変化を自動的に通知するソフトウェア設計パターンであり、通常はそのメソッドの1つを呼び出します。主に分散イベント処理システムの実装に使用されています。 JSliderの変更が検出されるたびに自分のコード内で、コードの小片を自動的に経由して、オブジェクトの速度を変更するために実行されます。オブザーバーパターンの理解

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

私はウィキペディアはなく、ために呼び出すと、それは扶養のリストを維持しないと思いますよく分かりません。 Observer Patternの微妙なところで誰かが私を啓発することができたら、私はそれを高く評価します。ありがとう!

+3

扶養家族のリストを持つ 'スライダー'です。アイテムは1つだけ追加されています。 – BalusC

答えて

1

Slider対象あるとaddChangeListenerは扶養のそのリストへの依存を追加します。これはオブザーバーパターンの古典的な例です。

2

オブザーバーはパブリッシュ・サブスクライブとしても知られています。その名前はもう少し説明するかもしれません。

ご存知のように、現在オブザーバは登録されているクライアントが1人しかいません。ただし、addChangeListenerは複数のリスナーを登録できます。ハイエンドのときにスライダーの色を変更したかったとします。あなたは速度を変えることからそれを分けたいと思うでしょう。

関連する問題