2. Observer Pattern
옵저버 패턴은 어떤 객체의 상태가 바뀌었을 때, 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식의 디자인 패턴을 말합니다.
이 패턴은 발행-구독(pub/sub) 모델로 불리기도 하며 일대다 (one-to-many) 의존성을 가지고 있습니다. 어떤 경우에는 주제이면서 옵저버의 역할을 할 수도 있습니다. 참고로, Subject 혹은 Observable 객체는 동일한 인터페이스를 이용해 옵저버에게 연락합니다.
아래는 각각 Subject 객체를 이용한 옵저버 패턴 구조와 Observable 객체를 이용한 패턴 구조를 보여드리겠습니다.
자바 내장 옵저버 패턴 사용
두 가지 구조의 차이점을 알아보면,
1. Observable 인터페이스가 아닌 클래스 라서 서브클래스에서 상속받으며 add, delete, notify 메소드를 구현한다는 점입니다.
2.Subject(주제) 쪽에서 일방적으로 데이터를 보내는 (PUSH) 방식뿐 아니라 Observer(옵저버)쪽에서 데이터를 가져가는 (PULL) 방식을 선택해서 사용할수 있습니다.
- 풀 방식의 처리가 좀더 권장되어진다. 옵저버중에 필요한 내용만 가져갈수도 있고, 자원이 낭비되지 않고 메소드를 일일히 고칠 필요 없이 게터 메소드 하나만 추가 하고 필요한 옵저버가 필요한 상태만 가지기 처리 할수 있기 때문입니다.
'Design Pattern' 카테고리의 다른 글
[Design Pattern] 01. Strategy Pattern (0) | 2020.07.16 |
---|