6. 옵저버 Observer Pattern 개념 및 실습

Yeppi's 개발 일기·2022년 5월 13일
0

디자인패턴

목록 보기
6/8
post-thumbnail

1. 개념

관찰자 패턴

  • 변화가 일어났을 때, 미리 등록된 다른 클래스에 통보

  • event listener 에서 많이 사용


2. 실습

  • 버튼을 클릭하면 message 가 전달되는 간략한 예제

버튼 기능 인터페이스

  • IButtonListener
  • 버튼 이벤트 추상화
public interface IButtonListener {
    void clickEvent(String event);
}

버튼 기능 구현

  • Button
  • 버튼을 클릭하면 클릭 이벤트로 message 전달
public class Button {
    private String name;
    private IButtonListener buttonListener;

    public Button(String name) {
        this.name = name;
    }

    public void click(String message) {
        buttonListener.clickEvent(message);
    }

    public void addListener(IButtonListener buttonListener) {
        this.buttonListener = buttonListener;
    }
}

출력 결과

  • main
        // Listener 를 통해서 event 를 전달
        Button button = new Button("버튼");
        
        button.addListener(new IButtonListener() {
        
            // 익명 클래스로 입력 버튼 전달
            @Override
            public void clickEvent(String event) {
                System.out.println(event);
            }
        });
        
        button.click("메시지 전달 : click 1");
        button.click("메시지 전달 : click 2");
        button.click("메시지 전달 : click 3");
        button.click("메시지 전달 : click 4");
profile
imaginative and free developer. 백엔드 / UX / DATA / 기획에 관심있지만 고양이는 없는 예비 개발자👋

0개의 댓글