본문 바로가기
언어/JAVA

Observer pattern

by step 1 2021. 6. 6.
반응형

관찰자 패턴은 변화가 일어 났을 때, 미리 등록된 다른 클래스에 통보해주는 패턴을 구현한 것이다.

많이 보이는 곳은 event listener에서 해당 패턴을 사용 하고 있다.

 

package com.company.design.observer;

public interface IButtonListener {
    void clickEvent(String event);
}
package com.company.design.observer;

public class Button {

    private String name;
    private IButtonListener buttonListener;

    public Button(String name){
        this.name = name;
    }
    public void addListenner(IButtonListener iButtonListener){
        this.buttonListener = iButtonListener;
    }

    public void click(String message){
        buttonListener.clickEvent(message);
    }
}
package com.company.design.observer;

public class main {
    public static void main(String[] args) {
        Button button = new Button("버튼");
        button.addListenner(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' 카테고리의 다른 글

Strategy pattern (전략 패턴)  (0) 2021.06.06
Facade pattern  (0) 2021.06.06
데코레이터 패턴  (0) 2021.06.06
Proxy pattern  (0) 2021.06.06
Adapter pattern  (0) 2021.06.06