정의
- 옵저버 패턴에는 Subject(주제)와 Observer(옵저버)가 있다
- 한 객체(Subject)의 상태가 바뀌면 그 객체에 의존하는 다른 객체(Object)들에게 연락이 가고 자동으로 정보가 갱신된다
원칙
- 상호작용하는 객체 사이에는 가능한 느슨한 결합을 사용해야 한다
방식
Push 방식
- 주제가 갱신되면 모든 데이터를 옵저버들에게 전달한다
Pull 방식
- 주제가 갱신되면 옵저버에게 알림을 보내고, 옵저버는 필요한 데이터만 주제에게서 가져간다
정리
- 주제는 동일한 인터페이스를 사용해서 옵저버와 연락한다
- Observer 인터페이스만 구현하기만 하면 어떤 구상 클래스라도 패턴에 참여할 수 있다
- 주제는 옵저버가 Observer 인터페이스를 구현했다는 것 외에는 전혀 모르기 때문에 느슨한 결합이라고 할 수 있다
예제 코드