Observer 패턴

뾰족머리삼돌이·2024년 9월 28일
0

디자인패턴

목록 보기
13/21

메일이나 알림기능을 생각해보면 사용자의 동작( 요청 )에 의한 것이 아닌, 외부의 상태변화에 따라 동작이 발생한다.
즉, 사용자가 아무런 동작을 하지않았어도 타인이 메일을 전송하면 사용자에게 메일 알림이 오는 것이다.

옵저버패턴은 이와 관련된 패턴으로 발행자와 구독자로 구분하여 작업을 처리한다.
발행자는 특정 이벤트가 발생했을때, 자신이 보유한 구독자들에게 알림을 보내는 형식이다.

이는 주기적인 API 요청을 통해 상태변화를 감지하는 폴링방식에 비해 효율적인 방식이다.
이벤트가 발생했을때만 구독자들에게 알림이 발생하기에 실시간으로 상태변화를 감지할 수 있기 때문이다.

위 이미지에서 볼 수 있듯이 PublisherSubscriber 배열을 가지고있고,
내부의 상태가 변화하면 notifySubscribers()를 이용하여 구독자들에게 알림을 보낸다.

Subscriber 인터페이스를 이용하여 이를 구현하는 구현체들을 작성할 수 있기때문에 확장이 유용하며, Publisher의 코드수정은 없어도 되므로 OCP를 준수한다.

0개의 댓글

관련 채용 정보