# 옵저버 패턴(Observer Pattern)

- 출판사 + 구독자 = 옵저버 패턴 -

1. 신문 배달을 디자인패턴의 관점으로 보면.

2. 신문사가 사업을 시작하고 신문을 찍어내기 시작합니다.

3. 독자가 특정 신문사/잡지사에 구독 신청을 하면 매번 새로운 신문이 나올 때마다 배달을 받을 수 있습니다. 

   계속 구독자로 남아있는 이상 계속해서 신문을 받을 수 있습니다.

4. 신문사가 계속 영업을 하는 이상 여러 개인 독자, 호텔, 항공사 및 기타 회사 등에서 꾸준히 구독 및 해지를 하게 됩니다.


신문 구독 메커니즘만 제대로 이해할 수 있다면 옵저버 패턴을 쉽게 이해할 수 있습니다. 출판사를 주제(Subject),

구독자를 옵저버(Observer)라고 부른다는 것만 외워두세요.


이해를 돕는 그림1 

신문사에 구독 신청을 한 객체들에게 신문을 보내준다.

구독자는 신문의 정보를 본다.

이해를 돕는 그림1을 보면 구석에 구독신청 하지 않은 객체는 정보를 받아 볼 수 없다.


이해를 돕는 그림2

구독하지 않던 객체는 신문에 관심이 생겨 신문사에 구독신청을 한다.


이해를 돕는 그림3

구독자(옵저버로 등록)되어 신문이 오길 기다리면 된다.


이해를 돕는 그림4

신문사가 신문을 구독자에게 전달 구독자들은 신문을 받아 본다.


이해를 돕는 그림5

구독자 1명이 구독 취소를 요청합니다.

구독자 명단에서 제외됩니다.


이해를 돕는 그림6

구독을 취소한 객체는 더 이상 신문을 전달 받지 못 해요.

다시 필요하면 구독신청을 하면됨.


- 핵심 -

옵저버 패턴에서는 한객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식.

일대다(One-To-Many) 의존성을 정의합니다.

반응형