728x90
반응형
01.옵저버패턴의 장단점
- 다수의 객체가 특정 객체 상태 변화를 감지하고 알림을 받는 패턴
01.1 장점
- 상태를 변경하는 객체 (publisher)와 변경을 감지하는 객체(subscriber)의 관계를 느슨하게 유지할 수 있음
- Subject 상태변경을 주기적으로 감지하지 않더라도 데이터를 받아옴
- 런타임 주기에 옵저버를 등록,해제 할 수 있다는 장점이 있음
01.2 단점
- 복잡도가 증가함
- 오브젝트 등록하고 해제하는 과정 필요
- 등록되어 있는 오브젝트가 등록안하고 해지 안하면 쌓이는데
- 계속 가지고 있어서 가비지컬렉터의 대상이 되지 않음
- 맵에 담아놔서 다른곳에서 쓰지 않아도 맵에 담겨있다는 것만으로도 대상이 안되는것
- 그래서 메모리 누수 현상이 발생하게됨
- 대안으로 unregister해주거나 하는것이 가장 좋은 방법이지만
- 특정상황에서 다른곳에서 참조하지 않으면 자동으로 레퍼런스 해제할 수 있도록 할 수 있음
- weakReference라는게 있는데 이를 이용해서 사용하면됨 (주로 해시맵에 적용함)
- 완전한 해결방법은 아니다. 해지를 명시적으로 할 수 없거나 레퍼런스 사라져도 상관없는 경우 사용함
- 계속 가지고 있어서 가비지컬렉터의 대상이 되지 않음
- 등록되어 있는 오브젝트가 등록안하고 해지 안하면 쌓이는데
728x90
반응형
'CS Study > 디자인패턴' 카테고리의 다른 글
2022-07-18-옵저버패턴-2부-패턴적용하기 (0) | 2022.07.18 |
---|---|
2022-07-18-옵저버패턴-1부-패턴소개 (0) | 2022.07.18 |
2022-07-11-중재자패턴-3부-장점과단점 (0) | 2022.07.18 |
2022-07-11-중재자패턴-2부-패턴적용하기 (0) | 2022.07.18 |
2022-07-11-중재자패턴-1부-패턴소개 (0) | 2022.07.18 |
댓글