개발/DesignPatterns

2. Observer Pattern(옵저버 패턴)

huiyu 2014. 7. 4. 00:47

Observer Design Pattern(옵저버 패턴)


Define

 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many)의존성을 정의


Structure

Observer scheme

- Subject(주제) : 객체에서 옵저버를 등록하거나 옵저버 목록에서 제거할 수 있다. 또한 모든 옵저버에게 연락을 위한 메소드가 있다.
- Observer : 옵저버가 될 가능성이 있는 객체는 반다스 observer인터페이스를 구현해야 한다. 이 인터페이스에는 주제의 상태가 바뀌었을 때 호출되는 update()메소드만 존재한다.
- ConcreteObserver(ViewOne,ViewTwo) : Observer인터페이스를 구현하면 무엇이든 옵저버 클래스가 될 수 있다. 각 옵저버는 특정 주제 객체에 등록을 해서 연락을 받을 수 있다.


Advantage

- 객체의 상태가 변경될 때 참조하고있는 대상들은 자동으로 상태가 업데이트 되고 참조하는 대상에 일관성을 보장한다.

- 주제와 옵저버는 느슨한 결합을 한다.(언제든지 옵저버 추가가능, 새로운 옵저버 추가 시 주제를 변경할 필요 없다, 주제와 옵저버는 서로 독립적으로 재사용 가능, 주제나 옵저버가 바뀌더라도 서로한테 영향을 미치지 않는다)


Code-Java


728x90
반응형