[TIL-260124] Observer Pattern
오늘 배운 내용
- 옵저버 패턴(Observer Pattern)
옵저버 패턴(Observer Pattern)
- Subject
- 주시대상이 되는 데이터와 옵저버들을 가지고 있는 주체이다.
- 데이터 변경시 등록된 여러 옵저버들에게 메서드를 통해 메시지를 전달한다.
- Observer
- Subject를 주시하고 있는 관찰자이며, 데이터 변경에 대한 메시지 수신 시 자신이 해야 할 동작을 수행한다.
- 옵저버 패턴 사용시 주의점
- 더 이상 사용하지 않는 객체는 구독을 해지하기
- 옵저버패턴은 구독자를 주체에 '등록'하는 방식이다.
- 앞으로 사용하지 않을 객체에서 구독 해지를 하지 않는다면, 불필요한 메모리 공간을 차지한다.
- 옵저버가 많아질수록 무거워진다
- 성능적으로 이득을 보는것은 사실이나, 구독자의 수가 늘어날수록 구독자 목록을 순회하며 호출 함수를 실행하기 때문에 구독자의 수와 성능이 반비례한다.
- 구조 복잡도 증가
- 옵저버 패턴은 객체 간의 결합력이 낮아지는 이점이 있지만 객체간의 관계가 불명확할 수 있다.
- 간결하고 명확한 코드를 작성해야 하며,이는 설계 단계에서 중요하게 생각해야 할 문제이다.
public class ObservaleProperty<T>