Observer Design Pattern(옵저버 패턴)
Define
한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many)의존성을 정의
Structure
- Subject(주제) : 객체에서 옵저버를 등록하거나 옵저버 목록에서 제거할 수 있다. 또한 모든 옵저버에게 연락을 위한 메소드가 있다.
- Observer : 옵저버가 될 가능성이 있는 객체는 반다스 observer인터페이스를 구현해야 한다. 이 인터페이스에는 주제의 상태가 바뀌었을 때 호출되는 update()메소드만 존재한다.
- ConcreteObserver(ViewOne,ViewTwo) : Observer인터페이스를 구현하면 무엇이든 옵저버 클래스가 될 수 있다. 각 옵저버는 특정 주제 객체에 등록을 해서 연락을 받을 수 있다.
Advantage
- 객체의 상태가 변경될 때 참조하고있는 대상들은 자동으로 상태가 업데이트 되고 참조하는 대상에 일관성을 보장한다.
- 주제와 옵저버는 느슨한 결합을 한다.(언제든지 옵저버 추가가능, 새로운 옵저버 추가 시 주제를 변경할 필요 없다, 주제와 옵저버는 서로 독립적으로 재사용 가능, 주제나 옵저버가 바뀌더라도 서로한테 영향을 미치지 않는다)
Code-Java
728x90
'Software Development > DesignPatterns' 카테고리의 다른 글
6. Singleton Pattern(싱글턴 패턴) (0) | 2014.07.20 |
---|---|
5. Abstract Factory Pattern(추상 팩토리 패턴) (0) | 2014.07.20 |
4. Factory Method Pattern(팩토리 메소드 패턴) (1) | 2014.07.06 |
3. Decorate Pattern(데코레이트 패턴) (0) | 2014.07.06 |
1. Strategy Pattern(전략패턴) (0) | 2014.07.03 |