07/06 디자인 패턴 기초 - Observer 패턴, Event 기반 설계

댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!

댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!

옵저버 패턴
한 객체의 상태가 변경되면, 해당 객체를 구독하고 있는 여러 객체에게 자동으로 알리는 패턴이다.
C#에서는 주로event,Action,delegate를 사용하여 구현한다.
객체 간 직접적인 의존성을 줄이고, UI·사운드·이펙트 등의 기능을 분리할 때 유용하다.
단, 사용이 끝난 옵저버는 반드시 이벤트 구독을 해제해야 한다.
예제 : 체력 변화 이벤트와 UI 구독 구조
public class PlayerHealth
{
public event Action<int, int>? OnHealthChanged;
public int Current { get; private set; }
public int Max { get; }
public PlayerHealth(int max)
{
Max = max;
Current = max;
}
public void TakeDamage(int damage)
{
if (damage <= 0) return;
Current = Math.Max(0, Current - damage);
OnHealthChanged?.Invoke(Current, Max);
}
}
public class HealthView
{
public void Bind(PlayerHealth health)
{
health.OnHealthChanged += Render;
Render(health.Current, health.Max);
}
private void Render(int current, int max)
{
Console.WriteLine($"HP: {current}/{max}");
}
}
XR을 활용한 게임 개발 3기(유니티) 수강생입니다. 곧 수료 하지만 앞으로 이곳에 가끔 저의 개발 경험이 나 지식 기록할까 합니다. 더 나아가 이 사이트가 제 개인위키의 역할을 할 수 있으면 좋겠습니다. 한국 게임 시장을 흔들겠습니다

게임 광고 수익은 단순히 광고를 붙이는 것이 아니라, 여러 광고 네트워크를 경쟁시켜 가장 높은 수익을 만드는 구조입니다.

안녕하세요. 플밍 4기 입니다. 게임 개발을 배우기 전 네트워크 엔지니어 도메인에서 익히고 배웠던 네트워크 이론에 대한 기초 입니다. 학습에 도움이 되길 바라며 공유 드립니다.