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 클래스를 싱글톤으로 만들면 의존성이 복잡해질 수 있으므로 필요한 경우에만 사용한다.



