이 글은 [헤드 퍼스트 디자인 패턴]의 2장 옵저버 패턴을 정리한 글입니다. 기상 모니터링 애플리케이션 예제 요구사항 현재 기상 조건(온도, 습도, 기압)의 변화를 실시간으로 디스플레이 장비에 반영해야 합니다. 갱신된 기상 정보는 WeatherData 객체의 세터 메소드를 통해 WeatherData 내부의 상태를 변화시키는 방식으로 동작한다고 가정합니다. 디스플레이 장비는 로직이 다양하며 확장 가능하다는 것을 전제합니다. 현재는 기상 조건, 기상 통계, 기상 예보 세 가지의 디스플레이 장비들이 있습니다. 먼저 나이브하게 WeatherData 클래스를 만들어 보겠습니다. MeasurementChanged 메소드는 getter 메소드를 통해 현재 기상 정보를 가져온 후 각 디스플레이 객체의 update 메소..