2011-12-18 6 views
-2

私はlisternerというデザインパターンを学習しています。誰でも私とこのパターンの例を共有することができます。 JWTのようなGUIに関連するものは何も必要ありません。誰も私とlisternerパターンの例を共有することができます

+0

[この投稿](http://ayp-sd.blogspot.com/2013/01/observer-design-pattern-in-java.html)では、リスナー(Observer)の実装を構築する方法を説明しています。 )デザインパターンを使用しています。 –

答えて

6

リスナーパターンはObserverに非常に近いです。基本的には、他のオブジェクトがオブジェクトを「聴く」ことを許可するだけです。したがって、これらのリスナーのリストを維持し、必要に応じて通知する必要があります。このような

何か:

public class MyClass { 
    public static interface Listener { 
     public void onNotify(); 
    } 

    private List<Listener> listeners = new ArrayList<Listener>(); 

    // addListener and removeListener methods omitted. 

    public void doSomething() { 
     // do something that listeners should be notified of. 

     // notify listeners like this: 
     for (Listener l : listeners) { 
     l.onNotify(); 
     } 
    } 
} 

はそれが理にかなって願っています:)

+0

興味深い - 私はJavaのnoobです。これを「外部」インターフェイスで行い、リスナーオブジェクトでそのインターフェイスを実装しました...いくつかの型キャストがaddListenerメソッドで行われているとしますか?これはきれいだと思う:) –

+0

いいえ、あなたはどんな種類の型キャストも必要ありません。しかし、インターフェースの名前を完全修飾する必要があります。これはMyClass.Listenerになります。 –

1

ここでは、Javaのパターンの使用例は、

...あなたが特定の何かを求めていないことから、です
public class MyButton extends JButton implements ActionListener { 
    public MyButton() { 
     addActionListener(this); 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     // omgwtfbbqroflolkthxbai 
    } 
} 
1

リスナーパターンは実際にはギャングオブフォーにはありませんlistデザインパターン。しかし、リスナパターンはオブザーバパターンを見る別の方法です。このWikipedia articleには、Javaで書かれたオブザーバーパターンソリューションの良い例が含まれています。

関連する問題