옵저버 패턴(observer pattern)

dlrmawn·2023년 12월 13일

CS

목록 보기
4/7
post-thumbnail

옵저버 패턴(observer pattern)

옵서버 패턴은 객체 사이에 일대다의 의존성을 정의
어떤 객체의 상태가 변할 때 그 객체에 의존하는 다른 객체들이 자동으로 알림을 받는 패턴

주요 구성 요소:

  • 주체(Subject) 또는 서브젝트
    상태 변화를 주시하고 있는 대상 객체로, 상태의 변경이 일어나면 등록된 옵저버들에게 알림을 보냅니다.
  • 옵저버(Observer)
    주체의 상태 변화를 감지하고 대응하는 객체입니다.
    주체에 등록되어 있어야 하며, 주체에서 알림이 오면 자동으로 업데이트 메소드를 호출하여 상태 변화에 대응합니다.
  • 구체적인 주체 및 옵저버
    인터페이스나 추상 클래스를 통해 주체와 옵저버의 일반적인 동작을 정의한 후, 구체적인 클래스에서 실제 동작을 구현합니다.



동작 과정

  • 주체 상태 변경
    주체의 상태가 변경되면 등록된 모든 옵저버들에게 알림을 보냅니다.
  • 옵저버 업데이트
    옵저버들은 알림을 받으면 자동으로 업데이트 메소드를 호출하여 주체의 상태 변화에 대응합니다.


장점

  • 느슨한 결합(Loose Coupling)
    주체와 옵저버 간에는 최소한의 의존성이 존재하며, 서로 독립적으로 확장 가능합니다.
  • 유연성(Flexibility)
    새로운 옵저버를 추가하거나 기존 옵저버를 제거하는 것이 간단하며, 주체의 변경이 옵저버에 영향을 미치지 않습니다.
  • 이벤트 기반 프로그래밍
    이벤트 발생 시 옵저버들에게 통지하는 기본적인 메커니즘을 제공합니다.




옵저버 패턴은 주로 이벤트 핸들링이나 MVC(Model-View-Controller) 아키텍처에서 활발하게 사용됩니다.








참고
면접을 위한 cs 전공지식 노트

profile
수정해야 할 내용 있으면 메일 부탁드립니다! ⍥

0개의 댓글