[TIL-260125] Singleton Pattern

데비·2026년 1월 25일

본과정

목록 보기
41/79

오늘 배운 내용

- 싱글톤 패턴


싱글톤 패턴(Singleton Pattern)

  • 싱글톤 패턴은 안 쓸수가 없을정도로 필수적인 디자인 패턴이다.
  • 게임을 구현할때 가장 많이 사용되는 패턴중 하나이다.
  • 단일의 인스턴스와 전역적인 접근을 제공하며 이러한 특성은 장점과 동시에 단점으로 작용할 수 있다.

싱글톤 패턴의 장단점

- 장점

  • 단일의 인스턴스와 전역적인 접근을 보장하기 때문에 싱글톤을 사용해 오브젝트들이 서로 참조하고 있는 결합도를 낮출 수 있다.
  • 게임 내에서 파괴되지 않기 때문에 보다 편하게 데이터를 보관할 수 있다.

- 단점

  • 전역적인 접근이 가능하기 때문에 데이터에 대한 보호수준을 주의하지 않으면, 의도치 않은 데이터 변화가 발생할 수 있다.
  • 객체들이 싱글톤 객체의 데이터에 의존하게 되는 현상이 발생할 수 있다.
  • static을 사용해 정적 메모리에 할당되므로, 싱글톤 객체가 많을수록 가용 메모리가 적어진다.

사용법 (코드예시)

public clss Singleton<T> : MonoBehaviour where T : MonoBehaviour
{
	private static T _instance;
    public static T Intance
    {
    	get
        {
        	if(_instance == null)
            {
            	_instance = FindObjectType<T>();
                DontDestroyOnLoad(_instance.gameObject);
            }
            return _intance;
        }
    }
    
    protected void SetSingleton()
    {
    	if(_instance != null && _instance != this)
        {
        	Destroy(gameObject);
        }
        else
        {
        	_instance = GetComponent<T>();
            DontDestroyOnLoad(gameObject);
        }
    }
}

0개의 댓글