옵저버 패턴은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하여 자동으로 내용이 갱신되는 일대다 의존성을 가진 디자인 패턴이다.

사용

특정 행동이 자동으로/순서에 따라 발생하는 것이 아닌 어떤 일에 대한 반응으로 동작

장점

  1. 실시간으로 한 객체의 변경사항을 다른 객체에 전파할 수 있다. (트위터, 유튜브)
  2. 느슨한 결합(Loose Coupling)을 사용한다.

단점

  1. 너무 많이 사용할 경우 상태 관리가 힘들 수 있다.
  2. 데이터 배분에 문제가 발생하면 큰 문제로 발전할 수 있다.

Loose Coupling

이것을 사용하는 장점으로는

  1. 옵저버를 언제든 새로 추가, 제거할 수 있다.