C++/디자인패턴

[C++]행동 패턴/옵저버 패턴

programmer-faust 2025. 7. 31. 21:08
  • 순서
    • 옵저버 패턴이란?
    • 옵저버 패턴의 장점과 단점
    • 옵저버 패턴 사용시 고려사항
    • 간단한 옵저버 패턴 작성
  • 옵저버 패턴이란?
    • 한 객체의 상태 변화를 감지해서 연관된 객체에 자동으로 통보하는 패턴
    • 객체 간의 느슨한 결합을 유지함
    • 상태 변화에 따른 자동 동기화를 사용함
    • 옵저버 패턴 사용의 예
      • 플레이어 상태 변화: 플레이어 체력이 변할 때 UI, 사운드, 이펙트가 동시에 반응해야할 때
      • 이벤트 기반 시스템: 게임 상태 변화를 여러 시스템이 감지해야 할 때
      • 느슨한 결합을 유지하면서 이벤트를 전파하고 싶을 때
      • MVC 패턴에서 모델의 변화를 뷰에 알려야 할 때
  • 옵저버 패턴의 장점과 단점
    1. 장점
      1. 이벤트 기반 시스템 설계 가능
      2. 객체 간 의존도 낮음
    2. 단점
      1. 순서 보장이 어려움
      2. 많은 옵저버가 있을 경우 성능에 문제가 생길 수 있음
  • 옵저버 패턴 사용시 고려사항
    • 옵저버 등록/해제 주기 관리를 고려해야함
    • 무한 루프에 빠지지 않도록 주의해야
  • 간단한 옵저버 패턴 작성