오답노트

[Java] 옵저버 패턴 본문

Java/디자인패턴

[Java] 옵저버 패턴

권멋져 2023. 7. 12. 09:22

옵저버 패턴

옵저버 패턴은 변화가 일어 났을 때, 미리 등록된 다른 클래스에 통보해주는 패턴을 구현한 것이다. 많이 보이는 곳은 event listener에서 해당 패턴을 사용하고 있다.

 

클래스

package observer;

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 iButtonListener){
        this.buttonListener = iButtonListener;
    }
}
package observer;

public interface IButtonListener {
    void clickEvent(String event);
}

 

실행

import observer.Button;
import observer.IButtonListener;

public class Main {
    public static void main(String[] args) {
        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");

    }

}

'Java > 디자인패턴' 카테고리의 다른 글

[Java] 전략 패턴  (0) 2023.07.12
[Java] 파사드 패턴  (0) 2023.07.12
[Java] 프록시 패턴  (0) 2023.07.11
[Java] 어댑터 패턴  (0) 2023.07.11
[Java] 데코레이터 패턴  (0) 2023.07.11