본문 바로가기
IT_Developers/JAVA

JAVA - 옵저버 패턴(Observer Pattern) 이론만 쉽게 설명

by 고코더 2020. 3. 17.

자바 옵저버 패턴을 분석 해보자


안녕하세요.
고코더 입니다.


오늘은 옵저버 패턴에 대해 알아봅니다. 좋은 글들이 많지만 조금은 어려운게 많아 최대한 쉽게 설명해보겠습니다.



 1. 옵저버 패턴이란?

옵저버 패턴(Observer Pattern)을 이해 할때 좋은 이미지가 있습니다. 바로 스타크래프트에 옵저버 입니다. 프로게이머는 이 유닛들에게 명령을 내립니다. 예를 들면 "모두 본부로 귀환하라" 그럼 통지 받은  옵저버들은 본부로 이동합니다. 그러다 중간에 옵저버가 파괴 되기도 하고 대열에 이탈하기도 합니다. 그렇지만 다른 옵저버들은 각자 할일을 합니다. 느슨한 관계입니다. 마우스가 주체이고 옵저버들이 객체 입니다. 마우스가 많은 옵저버에게 명령을 내리는 1:N (1대다) 관계입니다. 이 와 같은 모습이 옵저버 패턴의 이미지와 비슷합니다.


 2. 옵저버 패턴 설명



제가 운영하는 블로그를 예를 들어보겠습니다. 제 블로그를 구독하는 분들은 제가 쓴 글을 피드로 빠르게 받아 볼 수 있습니다. 이 분들이 바로 옵저버 객체들입니다. 언제든지 제가 쓰는 글을 볼 준비가 되어 있습니다. 



 3. 느슨한 결합



새로운 구독자가 들어와도 블로그는 변함없이 자신의 일을 합니다. 이게 옵저버 패턴의 특징입니다. 객체는 언제든지 구독하기도 하고 해지하기도 합니다. 느슨한 결합(Loose coupling)이라고 합니다. 옵저버가  어던 일을 하든지 주체자(고코더 블로그)는 상관없습니다. 영향을 주지 않는 관계 입니다. 단지 옵저버가 특정 인터페이스를 구현한다는 것만 알고 있습니다.



 4단점


인터페이스 구성이 아닌 import java.util.Observe 패키지의 클래스로 기능을 구현합니다. 그렇기 때문에 프로그램을 재활용을 위한 재구성이 어렵습니다. 


마무리


구현만 하면 제일 속 편한 디자인 패턴


댓글