07/03 디자인 패턴 기초 - Singleton, Static 클래스 활용

심지태
∙∙조회 4
07/03 디자인 패턴 기초 - Singleton, Static 클래스 활용

싱글톤 패턴 Singleton Pattern

프로그램 전체에서 특정 클래스의 객체를 하나만 생성하고, 어디서든 접근할 수 있도록 만드는 디자인 패턴

특징

  • 인스턴스를 하나만 생성함
  • 전역적으로 접근 가능함
  • 여러 객체가 동일한 데이터를 공유할 수 있음

Unity 예시

public class UIManager : MonoBehaviour
{
public static UIManager Instance { get; private set; }

private void Awake()
{
if (Instance == null)
{
Instance = this;
}
else
{
Destroy(gameObject);
}
}
}

사용 방법

UIManager.Instance.OpenInventory();

주로 사용하는 곳

  • UIManager
  • SoundManager
  • GameManager
  • DataManager
  • SceneManager

장점

  • 객체를 따로 전달하지 않아도 쉽게 접근 가능
  • 공통 데이터를 관리하기 편함
  • 중복 객체 생성을 방지할 수 있음

단점

  • 클래스 간 의존성이 강해질 수 있음
  • 전역 변수처럼 남용하기 쉬움
  • 테스트와 유지보수가 어려워질 수 있음
  • 초기화 순서 문제가 발생할 수 있음

핵심 정리 싱글톤은 하나만 존재해야 하는 관리자 객체를 전역에서 사용하기 위한 패턴이다.

편리하지만 모든 Manager 클래스를 싱글톤으로 만들면 의존성이 복잡해질 수 있으므로 필요한 경우에만 사용한다.