디자인 패턴

준비중..

디자인 패턴

객체지향 설계의 꽃!

03 옵저버 패턴

# 옵저버 패턴 ![Imgur](https://i.imgur.com/7rZ5gIs.png) ## 정의 한 객체(subject)의 상태가 바뀌면 이를 구독하는 모든 객체(observer)에게 연락이 가고, 자동 갱신되는 일대다 패턴. ## 장점 높은 복잡도(정보의 크기, 객체 규모, 객체간 관계)의 상황에서 객체간 정보 교환시 가이드 라인을 제시. ## 특징 푸시(push)방식과 풀(pull) 방식이 존재. ## 디자인 원칙 1. 바뀌는 부분은 캡슐화한다. - 바뀌는 것: subject, observers 2. 상속보다는 구성을 활용한다. - subject는 observer를 composition하여 관리. 3. 구현이 아닌 인터페이스에 맞춰 프로그래밍한다. - 인터페이스(subject, observer)를 구현하는 것으로 느슨한 결합을 유도. 4. 상호작용 객체간 커플링을 낮춘다. ## 설계 예 ![Imgur](https://i.imgur.com/rouR5MA.png)