2011-12-18 2 views
-2

나는 listerner라는 디자인 패턴을 배우고 있습니다. 누구나 나와 함께이 패턴의 예를 나눌 수 있습니다. JWT와 같은 GUI에 관련된 것이 필요하지 않습니다. 감사합니다.누구나 나와 함께 listerner 패턴의 예를 공유 할 수 있습니다

+0

리스너 (일명 Observer) 구현을 작성하는 방법을 설명하는 [this post] (http://ayp-sd.blogspot.com/2013/01/observer-design-pattern-in-java.html)를보십시오.) 디자인 패턴을 사용합니다. –

답변

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 멍청이이고 '외부'인터페이스로 이것을 수행했으며 리스너 객체가 해당 인터페이스를 구현하도록했습니다 ... 일부 유형 변환은 addListener 메소드에서 수행됩니다. 이것은 더 깨끗해 보입니다 :) –

+0

아니요 어떤 종류의 타이 캐스팅도 필요하지 않습니다. 하지만 MyClass.Listener가 될 인터페이스의 이름을 완전히 한정해야합니다. –

1

는, 자바 패턴의 사용 예제입니다 만드는 희망 ...

public class MyButton extends JButton implements ActionListener { 
    public MyButton() { 
     addActionListener(this); 
    } 

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

청취자 패턴은 실제 디자인 패턴의 Gang of Four list에 없습니다. 그러나 리스너 패턴은 ​​관찰자 패턴을 보는 또 다른 방법 일뿐입니다. 이 Wikipedia article에는 Java로 작성된 옵저버 패턴 솔루션의 좋은 예가 들어 있습니다.

관련 문제