디자인 패턴

옵저버 패턴 (Observer Pattern)

눈사람99 2023. 4. 26. 16:52
728x90

옵저버 패턴

 

주체가 어떤 객체에 상태 변화가 있을 때마다 메소드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴이다. 주체와 객체를 분리하지 않고 상태가 변경되는 객체를 기반으로 구현하기도 한다. 옵저버 패턴은 주로 이벤트 기반 시스템에 사용하며 MVC 패턴에서도 사용된다.

MVC 패턴에서의 동작을 예로 들면 모델(주체)에서 변경 사항이 생겨 update() 메소드로 옵저버인 뷰에 알려주고 이를 기반으로 컨트롤러가 작동한다.

 

구현 형태

 

유저1과 유저2가 등록되어 두 유저에게 공지사항을 알려주고 유저1을 삭제하고 유저2에게 인사한다.

유저에 대한 상태 변화가 일어나면 notify 메소드를 통해 변화를 알려준다.

728x90