공부일지

옵저버 패턴[작성중] 본문

코딩/디자인패턴

옵저버 패턴[작성중]

이하택 2023. 10. 30. 12:45

옵저버패턴의 정의

  • 옵저버(: obesrver : 관측자) 패턴

플레이어 체력을 관찰하다가 0으로 떨어진다면 UI,Controller, Manager 등에 플레이어 패배를 알리는 기능을 고려해보자.

가장 먼저 고려할 수 있는 건 아마도 Update문 안에서 프레임 단위로 체력을 확인하다가 0 이하가 된다면 처리해 주는 것이다.

다만 이 경우 UI관련 코드들, Control 관련 코드, Manager코드 전부와 커플링이 되고 말 것이다.

이런 코드 전부와 커플링이 되지 않고 체력 상태를 전파하기 위해서 사용하는 것이 옵저버 패턴이다.

📌옵저버 패턴 : 하나의 옵저버를 통해 행동을 감시해서 처리하는 것

이 옵저버 패턴을 사용하면 누가 받든 상관없이 알림을 보낼 수 있다.

따라서 옵저버 패턴은 위와 같이 일대 다의 맺게 되고

이때 모든 객체들이 이 상황을 알 필요 없으므로,

필요한 객체만 이 정보를 받겠다고 옵저버에게 연락을 미리해두는데 이것을 구독이라고 한다.

옵저버의 구현

정리하자면, 옵저버는 특정 객체를 지속적으로 관찰하다 구독한 객체들에게 소식을 전하는 구조이다.

장단점

정적 호출보다야 약간 느릴 수 있지만 성능에 민감한 코드가 아니라면 문제 없다.

더불어 옵저버 패턴은 성능에 민감하지 않은 곳에 부합하기에 동적 디스패치로 실행해도 문제 없다.

다만, 관찰자 패턴은


[Unity] 디자인 패턴 : 옵저버 패턴(Observer Pattern)
Unity와 C#을 통한 옵저버 패턴(Observer Pattern)의 정의와 사용 방법에 대해 알아보자. 1. 옵저버 패턴(Observer Pattern)이란? 옵저버 패턴(Observer Pattern)은 한 객체(주제)의 상태가 바뀌면 그 객체에 의존하는 다른 객체(옵저버들)에게 메시지를 전달하고 옵저버들은 각자의 내용을 갱신할 수 있는 디자인 패턴으로 일대다(one-to-many) 의존성을 가진다. 옵저버 패턴의 핵심은 '느슨한 결합'이다. 결합이긴 하지만 강한 결합이 아닌 느슨하게 결합되어, 연결을 해지하기 유용하다. 느슨한 결합을 사용하면 객체 사이의 상호 의존성을 최소화할 수 있기 때문에 유연한 객체지향 시스템을 구축할 수 있다. 옵저버 패턴은 요즘 구독 서비스 같은 개념으로 이해하면 편하다..
https://wonjuri.tistory.com/entry/Unity-디자인-패턴-옵저버-패턴Observer-Pattern
내일배움캠프
국비지원 코딩, 내일배움캠프는 개발자 취업까지 자신 있습니다. 기간 제한 없는 취업 컨설팅을 받으며 비전공자 IT취업 준비, 확실히 끝내세요.
https://nbcamp.spartacodingclub.kr/game


Uploaded by N2T

'코딩 > 디자인패턴' 카테고리의 다른 글

풀 매니저  (0) 2023.10.19
전략패턴  (1) 2023.09.25