Oracle/JAVA 2011. 7. 13. 15:20

Observer 패턴

Observer : 보는사람
  • 관찰대상의 상태가 변화하면 변화를 통보함.=> Subject가 변경내용을 Observer에게 통보함.
  • pull방식으로 전달=> 공통적인 모든 정보를 전달하기때문에 observer들은 자신이 원하는 정보만 사용하면됨.


사용예
 A사이트의 데이터가 변경될때 마다 B,C,D사이트는 알고 싶다. B,C,D가 A사이트의 옵저버로 설정되어 있으면 A사이트가 공지해줄때마다 A사이트의 변경내용을 알수 있다.

방법
 1. 직접구현
 
 2. Observable클래스 사용
  - 단점    
  • 인터페이스가 아닌 클래스이기 때문에 직접상속해서 사용해야하므로 다른 슈퍼클래스를 상속하고 있을 경우 사용할수 없음(재사용성 위배)
  • 인터페이스가 존재하지 않기 때문에 자바에 내장된 Observer API하고 잘맞는 클래스를 직접 구현하기 불가능함. 멀티스레드로 하는일 불가능함.
  • 핵심메소드를 외부에서 호출할수 없음.

'Oracle > JAVA' 카테고리의 다른 글

Eclipse에서 Subversion연동  (0) 2011.07.14
이클립스 subversion설치  (0) 2011.07.13
Eclipse Default Browser 변경  (0) 2011.07.08