한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고
자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의한다.
상호작용하는 객체 사이에는 가능하면 느슨한 결합을 사용해야 한다.
✅ 주제는 옵저버가 특정 인터페이스(Observer 인터페이스)를 구현한다는 사실만 알고 있다.
✅ 옵저버는 언제든지 새로 추가할 수 있다.
✅ 새로운 형식의 옵저버를 추가할 때도 주제를 변경할 필요가 없다.
✅ 주제와 옵저버는 서로 독립적으로 재사용할 수 있다.
✅ 주제난 옵저버가 달라져도 서로에게 영향을 미치지 않는다.
| Push | Pull |
|---|---|
| 주제가 옵저버에게 상태를 알리는 방식 | 옵저버가 주제로부터 상태를 끌어오는 방식 |

클래스 다이어그램에 있는 각 클래스들이 어떤 관계인지 구상해보자.
HeadFirst DesignPattern - 한빛미디어