1. Observer Pattern
- Observer Pattern은 관찰자 패턴이라 하며, 변화가 일어 났을 때, 미리 등록된 다른 클래스에 통보해주는 패턴을 구현한 것
 
- 많이 보이는 곳은 event listener에서 해당 패턴을 사용 하고 있다

 
2. 프로젝트 테스트
- Package : observer
 
- Interface : IButtonListener
 
- Class : Button
 
- IButtonListener.java
 
package com.company.design.observer;
public interface IButtonListener {
    void clickEvnet(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 click(String message) {
        buttonListener.clickEvnet(message);
    }
    public void addListener(IButtonListener iButtonListener) {
        this.buttonListener = iButtonListener;
    }
}
package com.company.design;
import com.company.design.observer.Button;
import com.company.design.observer.IButtonListener;
public class Main {
    public static void main(String[] args) {
        Button button = new Button("버튼");
        button.addListener(new IButtonListener() {
            @Override
            public void clickEvnet(String event) {
                System.out.println(event);
            }
        });
        button.click("메시지 전달 : click 1");
        button.click("메시지 전달 : click 2");
        button.click("메시지 전달 : click 3");
        button.click("메시지 전달 : click 4");
    }
}
