나는 listerner라는 디자인 패턴을 배우고 있습니다. 누구나 나와 함께이 패턴의 예를 나눌 수 있습니다. JWT와 같은 GUI에 관련된 것이 필요하지 않습니다. 감사합니다.누구나 나와 함께 listerner 패턴의 예를 공유 할 수 있습니다
답변
리스너 패턴은 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();
}
}
}
은 당신이 특정 무언가를 요구하지 않을 때문에 의미 : 여기
흥미 롭습니다 - 저는 Java 멍청이이고 '외부'인터페이스로 이것을 수행했으며 리스너 객체가 해당 인터페이스를 구현하도록했습니다 ... 일부 유형 변환은 addListener 메소드에서 수행됩니다. 이것은 더 깨끗해 보입니다 :) –
아니요 어떤 종류의 타이 캐스팅도 필요하지 않습니다. 하지만 MyClass.Listener가 될 인터페이스의 이름을 완전히 한정해야합니다. –
는, 자바 패턴의 사용 예제입니다 만드는 희망 ...
public class MyButton extends JButton implements ActionListener {
public MyButton() {
addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
// omgwtfbbqroflolkthxbai
}
}
청취자 패턴은 실제 디자인 패턴의 Gang of Four list에 없습니다. 그러나 리스너 패턴은 관찰자 패턴을 보는 또 다른 방법 일뿐입니다. 이 Wikipedia article에는 Java로 작성된 옵저버 패턴 솔루션의 좋은 예가 들어 있습니다.
- 1. PAC 디자인 패턴의 예를 아십니까?
- 2. 누구나 TTMessageController에 대한 좋은 예를 보내 주실 수 있습니다
- 3. 누구나 "시야"를 설명 할 수 있습니다
- 4. 누구나 C 언어로 공유 메모리 세그먼트를 만들 수 있습니다.
- 5. 누구나 explorercanvas를 GWT와 함께 사용할 수 있습니까?
- 6. 나와 함께 협조하기 위해 Enum을 얻는 데 문제가 있습니다
- 7. 작업 단위 패턴의 코드 공유
- 8. LINQ의 백분율이 0으로 나와 있습니다.
- 9. 누구나 샘플 .lldbinit 파일을 공유 할 수 있습니까?
- 10. 더 복잡한 (실제) 모델 바인딩? 나와 함께
- 11. MonthMixin에서 클래스 기반보기를 사용하는 예를 공유 할 수 있습니까?
- 12. 나와 함께 3 개 CSS 파일을 디자인
- 13. 리눅스는 configure/make, --prefix? 나와 함께
- 14. Dvorak와 함께 휴대 할 수 있습니다.
- 15. 내 FFT2 나와 함께 작동하지 기능
- 16. 누구나 wav를 float 배열 버퍼로 변환 할 수 있습니다.
- 17. initWithContentsOfFile이 미친 듯이 새어 나와 있습니다
- 18. UIDatePicker는 기본적으로 Null을 반환합니까? 여기에 나와 함께
- 19. .ASP 페이지는 그래서 나와 함께 베어하시기 바랍니다
- 20. 그래서 나와 함께 곰하시기 바랍니다 .. 로그인 체크
- 21. 사전에 다른 입력이 모두 동일하게 나와 있습니다.
- 22. 인터넷에 문서를 저장하여 다른 사용자와 공유 할 수 있습니다.
- 23. 누구나 CASlotProxy에 대한 아이디어가 있습니다
- 24. Heroku 공유 데이터베이스를 재설정 할 수 없습니다.
- 25. 공유 도메인 논리? 예를 들어
- 26. 공유 라이브러리에 공유 라이브러리를로드 할 수 있습니까?
- 27. CV_CAP_OPENNI가 나와 작동하지 않습니다
- 28. 누구나 색인 작성 경험이 있습니다.
- 29. 백엔드와 프런트 엔드간에 작업을 가장 쉽게 공유 할 수 있습니다.
- 30. 여러 mvc 3 프로젝트에서보기를 공유 할 수 있습니다.
리스너 (일명 Observer) 구현을 작성하는 방법을 설명하는 [this post] (http://ayp-sd.blogspot.com/2013/01/observer-design-pattern-in-java.html)를보십시오.) 디자인 패턴을 사용합니다. –