2009년 11월 26일 목요일

Observer Pattern

Observer Pattern

Observer : 관찰자
관찰 대상의 상태가 변화하면 관찰자에게 알려줌
상태변화에 따른 처리를 기술할 때 효과적

 

예제프로그램


 

Observer Pattern 의 등장인물

Subject(관찰 대상자)의 역할
: Subject는 관찰되는 대상을 나타냅니다.
  Subject 역할은 관찰자인 Observer 역할을 등록하는 메소드와 삭제하는 메소드를 가짐.
  또 현재의 상태를 취득하는 메소드도 선언되어 있습니다.
  예제프로그램에서 NumberGenerator 클래스

ConcreteSubject(구체적인 관찰 대상자)의 역할
: 구체적으로 관찰되는 대상을 표현하는 역할
  상태가 변화하면 그것이 등록되어 있는 Observer역할에 전합니다.
  예제프로그램에서 RandomNumberGenerator 클래스

Observer(관찰자) 의 역할
: Subject 역할로 부터 상태가 변했습니다 라고 전달받는 역할을 합니다. 이를 위한 메소드는 update
  예제프로그램에서는 Observer 인터페이스

ConcreteObserver(구체적인 관찰자)의 역할
: 구체적인 Observer
  update 메소드가 호출되면 그 메소드 안에서 Subject 역할의 현재 상태를 취득
  예제프로그램에서 DigitObserver클래스, GraphObserver클래스


 

출처 : Java 언어로 배우는 디자인 패턴 입문

댓글 없음:

댓글 쓰기