디자인패턴 Observer Pattern

황제낙엽 2007.04.05 23:42 조회 수 : 13 추천:108

sitelink1 https://blog.naver.com/cjy2103/222789026259 
sitelink2 http://cafe.naver.com/kwania.cafe?iframe...icleid=268 
sitelink3  
extra_vars4  
extra_vars5  
extra_vars6  

옵저버 패턴의 시나리오는 다음과 같다.

1. WeatherData 클래스에는 세 가지 측정값(온도, 습도, 기압)을 알아내기 위한 게터 메소드가 있다.
2. 새로운 기상 측정 데이터가 나올 때마다 measurementsChanged() 메소드가 호출된다. (이 메소드가 어떤 원리로 호출되는지는 지금 알지도 못하고, 꼭 알아야 하는 것도 아니다.
    이 메소드가 어떤 식으로든 호출 된다는 것 자체가 중요할 뿐이다.)
3. 기상 데이터를 사용하는 세 개의 디스플레이 항목을 구현해야 한다.
    하나는 현재 조건을 표시하는 것이고, 다른 하나는 기상 통계를 표시하는 것이고, 나머지 하나는 기상 예보를 표시하는 것이다.
    WeatherData에서 새로운 측정값이 들어올 때마다 디스플레이를 갱신해야 한다.
4. 시스템이 확장 가능해야 한다.
    다른 개발자들이 별도의 디스플레이 항목을 만들 수 있도록 해야 하고 사용자들이 애플리케이션에 마음대로 디스플레이 항목을 추가/제거할 수 있도록 해야 한다.
    현재 상황에서는 세 가지 기본 디스플레이 형식(현재 조건, 통계, 예보)에 대해서만 알고 있다.