2022-07-18-옵저버패턴-3부-장점과단점
본문 바로가기
CS Study/디자인패턴

2022-07-18-옵저버패턴-3부-장점과단점

by KyeongMin 2022. 7. 18.
728x90
반응형

01.옵저버패턴의 장단점

  • 다수의 객체가 특정 객체 상태 변화를 감지하고 알림을 받는 패턴

01.1 장점

  • 상태를 변경하는 객체 (publisher)와 변경을 감지하는 객체(subscriber)의 관계를 느슨하게 유지할 수 있음
  • Subject 상태변경을 주기적으로 감지하지 않더라도 데이터를 받아옴
  • 런타임 주기에 옵저버를 등록,해제 할 수 있다는 장점이 있음

01.2 단점

  • 복잡도가 증가함
  • 오브젝트 등록하고 해제하는 과정 필요
    • 등록되어 있는 오브젝트가 등록안하고 해지 안하면 쌓이는데
      • 계속 가지고 있어서 가비지컬렉터의 대상이 되지 않음
        • 맵에 담아놔서 다른곳에서 쓰지 않아도 맵에 담겨있다는 것만으로도 대상이 안되는것
        • 그래서 메모리 누수 현상이 발생하게됨
        • 대안으로 unregister해주거나 하는것이 가장 좋은 방법이지만
          • 특정상황에서 다른곳에서 참조하지 않으면 자동으로 레퍼런스 해제할 수 있도록 할 수 있음
          • weakReference라는게 있는데 이를 이용해서 사용하면됨 (주로 해시맵에 적용함)
            • 완전한 해결방법은 아니다. 해지를 명시적으로 할 수 없거나 레퍼런스 사라져도 상관없는 경우 사용함
728x90
반응형

댓글