관찰자 패턴
변화가 일어났을 때, 미리 등록된 다른 클래스에 통보
event listener
에서 많이 사용
public interface IButtonListener {
void clickEvent(String event);
}
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;
}
}
// 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");