Design Pattern

옵저버 패턴(Observer Pattern)

snowkit 2022. 5. 28. 01:26

정의

  • 옵저버 패턴에는 Subject(주제)와 Observer(옵저버)가 있다
    • 1:N 관계이다
  • 한 객체(Subject)의 상태가 바뀌면 그 객체에 의존하는 다른 객체(Object)들에게 연락이 가고 자동으로 정보가 갱신된다

원칙

  • 상호작용하는 객체 사이에는 가능한 느슨한 결합을 사용해야 한다

방식

  • Push 방식과 Pull 방식이 있다

Push 방식

  • 주제가 갱신되면 모든 데이터를 옵저버들에게 전달한다

Pull 방식

  • 주제가 갱신되면 옵저버에게 알림을 보내고, 옵저버는 필요한 데이터만 주제에게서 가져간다

정리

  • 주제는 동일한 인터페이스를 사용해서 옵저버와 연락한다
  • Observer 인터페이스만 구현하기만 하면 어떤 구상 클래스라도 패턴에 참여할 수 있다
  • 주제는 옵저버가 Observer 인터페이스를 구현했다는 것 외에는 전혀 모르기 때문에 느슨한 결합이라고 할 수 있다

예제 코드

'Design Pattern' 카테고리의 다른 글

전략 패턴(Strategy Pattern)  (0) 2022.05.27