사용 시점 및 이유
- 어떤 객체의 상태에 관심이 있는 오브젝트가 몇개인지 알 수 없을 때
- 관심이 있는 객체와 상태를 가진 객체간에 약결합 상태를 유지하고 싶을 때
구현
- 클라이언트는 Subject(주체) 객체에 addObserver 혹은 removeObserver를 통해 관찰하는(관심있는) 객체들을 추가 또는 제거 한다.
- subject에 상태가 변경시 notify()를 통해 가지고 있는 Observer들의 update를 실행해 준다.
- update 실행시 Push방식 혹은 Pull방식은 상황에 맞게 사용하여 구현한다.
- push: Observer에 통용할수 있는 파라미터로 인터페이스를 구성 후, Subject에서 알맞는 파라미터를 넘겨준다.
- pull: update 실행시 observer에서 subject로부터 직접 필요한 값을 Get한 후 사용한다.
'디자인패턴' 카테고리의 다른 글
(행동패턴) 전략 패턴 (0) | 2023.05.10 |
---|---|
(행동패턴) 상태 패턴 (0) | 2023.05.08 |
(행동패턴) 메멘토 패턴 (0) | 2023.05.08 |
(행동패턴) 중재자 패턴 (0) | 2023.05.06 |
(행동패턴) 이터레이터 패턴 (0) | 2023.05.06 |