옵저버패턴의 정의
- 옵저버(: obesrver : 관측자) 패턴
플레이어 체력을 관찰하다가 0으로 떨어진다면 UI,Controller, Manager 등에 플레이어 패배를 알리는 기능을 고려해보자.
가장 먼저 고려할 수 있는 건 아마도 Update문 안에서 프레임 단위로 체력을 확인하다가 0 이하가 된다면 처리해 주는 것이다.
다만 이 경우 UI관련 코드들, Control 관련 코드, Manager코드 전부와 커플링이 되고 말 것이다.
이런 코드 전부와 커플링이 되지 않고 체력 상태를 전파하기 위해서 사용하는 것이 옵저버 패턴이다.
📌옵저버 패턴 : 하나의 옵저버를 통해 행동을 감시해서 처리하는 것
이 옵저버 패턴을 사용하면 누가 받든 상관없이 알림을 보낼 수 있다.
따라서 옵저버 패턴은 위와 같이 일대 다의 맺게 되고
이때 모든 객체들이 이 상황을 알 필요 없으므로,
필요한 객체만 이 정보를 받겠다고 옵저버에게 연락을 미리해두는데 이것을 구독이라고 한다.
옵저버의 구현
정리하자면, 옵저버는 특정 객체를 지속적으로 관찰하다 구독한 객체들에게 소식을 전하는 구조이다.
장단점
정적 호출보다야 약간 느릴 수 있지만 성능에 민감한 코드가 아니라면 문제 없다.
더불어 옵저버 패턴은 성능에 민감하지 않은 곳에 부합하기에 동적 디스패치로 실행해도 문제 없다.
다만, 관찰자 패턴은
Uploaded by N2T