728x90
728x90
옵저버 패턴 (Observer pattern, 콜백 메서드)
- 한 객체의 상태가 변하면 그 객체에 의존하는 다른 객체들에게 통지되고, 자동으로 내용이 갱신됨
- 호출이 되면 돌아감
- 구현한 기능은 필요에 따라 가져와서 사용할 수 있게 됨
- 예시] Swing의 이벤트 리스너 : https://young0105.tistory.com/83
예제 코드
1. 인터페이스 선언
2. 인터페이스를 포함 관계로 갖는 클래스 생성
더보기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class Button { private IButtonListener iButtonListener; // setter public void setIButtonListener(IButtonListener iButtonListener) { this.iButtonListener = iButtonListener; } // 이벤트 메서드 public void click(String message) { // setter 메서드로 인터페이스가 세팅되지 않았다면 이벤트 작동 X if (iButtonListener != null) { this.iButtonListener.clickEvent(message); } } } | cs |
3. 옵저버 패턴 설계 및 사용하기
더보기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public static void main(String[] args) { // 옵저버 패턴 설계 (콜백 메서드) Button button = new Button(); // 익명 구현 클래스 button.setIButtonListener(new IButtonListener() { @Override public void clickEvent(String event) { // 하고 싶은 동작/알고리즘을 여기서 구현 System.out.println("콜백 ! " + event); } }); // 필요할 때마다 click 메서드를 통해 기능 사용 button.click("클릭"); } | cs |
320x100
반응형
'Java > Design Pattern' 카테고리의 다른 글
[Java] 전략 패턴 (Strategy pattern) (0) | 2023.04.11 |
---|---|
[Java] 싱글톤 패턴 (Singleton pattern) (0) | 2023.04.10 |
[Java] 어댑터 패턴 (Adapter pattern) (0) | 2023.03.27 |
[Java] 디자인 패턴 정리 (0) | 2023.03.27 |
[Java] 빌더 패턴 (Builder pattern) (0) | 2023.03.23 |