옵저버 패턴이란?

객체의 상태 변화를 관찰하는 관찰자들

즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다
메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴

주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용 발행/구독 모델로 알려져 있기도 하다

구조

structure.png

  • Subject
    Observer, 관찰자를 알고 있는 주체
    관찰자를 등록하고 제거하는 인터페이스 제공
  • Observer Subject에서 변화에 대한 신호를 받아 들여 갱신하는 인터페이스 제공

장점

객체간의 결합을 느슨하게 유지할 수 있다 주체와 관찰자간 데이터 교환을 효과적으로 적용할 수 있다

단점

데이터 교환간에 오히려 결합도가 높아질 수 있다

다수의 관찰자에게 데이터 교환시 오히려 상태관리가 힘들어지거나 시스템 전체에 영향을 끼칠 수 있다


참고