본문 바로가기

JAVA/Design Patterns

2.옵저버 패턴

반응형

옵저버 패턴

정의 - 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의한다.


핵심정리

- 옵저버 패턴에서는 객체들 사이에 일대다 관계를 정의한다.

- Subject 또는 Observable 객체는 동일한 인터페이스를 써서 Observer에게 연락을 한다.

- Observable에서는 옵저버들이 Observer 인터페이스를 구현한다는 것을 제외하면 옵저버에 대해 전혀 모르기 때문에 이들 사이의 결합은 느슨한 결합이다.

- 옵저버 패턴을 이용하면 주제 객체에서 데이터를 보내거나(푸쉬 방식) 옵저버가 데이터를 가져오는(풀 방식)을 쓸 수 있다.

- 옵저버들한테 연락을 돌리는 순서에 절대로 의존하면 안된다.

- 자바에서는 범용으로 쓸수 있는 java.util.Observable을 비롯하여 옵저버 패턴을 구현한 것들이 여러 있다.

- java.util.Observable의 몇가지 문제점에 주의

- 필요하면 언제든지 주저하지 말고 Observable 클래스에 상응하는 클래스를 직접 구현한다.

- 스윙 및 여러 GUI 프레임워크에서 옵저버 패턴이 많이 쓰인다.

- 옵저버 패턴은 JavaBeans나 RMI를 비롯하여 GUI가 아닌 다른부분에서도 광범위하게 쓰인다.

- 최근 RxJava에서 비동기로 Observable를 사용한다.


출처 - Head First Design Patterns 저자- 에릭 프리먼, 엘리자베스 프리먼, 케이시 시에라, 버트 베이츠

반응형

'JAVA > Design Patterns' 카테고리의 다른 글

5. 싱글톤 패턴  (0) 2018.12.06
4. 팩토리 메서드 패턴 / 추상 팩토리 패턴  (0) 2018.12.05
디자인의 원칙  (0) 2018.11.29
데코레이터 패턴  (0) 2018.11.27
상태패턴  (0) 2018.11.27