개발공부/디자인패턴

옵저버 패턴(Observer Pattern) / 관찰자 디자인 패턴

개발자 찐빵이 2022. 1. 10. 18:29
728x90

옵저버 패턴이란?

옵저버 패턴은 관찰자(옵저버)가 공급자를 구독하고, 공급자에게 상태 변경이 발생할 때마다 알림을 받을 수 있는 패턴이다.
유튜브의 구독, 알림 시스템을 떠올리면 된다.

내가 한 유튜버를 구독하고 알림 설정을 하면,
유튜버가 영상을 올릴 때 알림을 받을 수 있다.

여기서 유튜버가 영상을 올리는 행위가 상태 변경이다.
새로운 영상이 나타났으니 공급자의 상태가 변경되었고, 구독자에게 알림이 간다.

옵저버 패턴을 구성하는 객체

Subject : 데이터를 관리하고 전달하는 객체 / 유튜버
Observer : Subject를 관찰하며 데이터의 변화를 전달받는 객체 / 구독자

두 객체는 1:N 관계를 맺는다.
즉, 한 개의 Subject를 1개 이상의 Observer가 구독할 수 있다.

Subject는 자신이 관리하는 데이터에 변화가 생겼을 때 자신을 구독하는 Observer에게 변경사항을 전달한다.

반응형