오늘 배운 내용
- 싱글톤 패턴
싱글톤 패턴(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);
}
}
}