본문 바로가기

유니티 개발 정보/프로그래밍

Singleton VS Static Class


유니티에서 스크립트를 작성하다보면, 어디서든지 접근할 수 있는, 그리고 오직 하나의 인스턴스만 필요로 하는 

Manager Class 혹은 Helper Class를 만들어야 하는 일이 발생할 것이다. 


이 경우 보통 싱글톤 패턴이나, 정적 클래스로 많이 제작을 한다. 하지만 둘의 차이점을 제대로 인지 하지 못하고 사용하게되면 어떨땐 싱클톤으로 어떨땐 정적클래스로 만들어 코드의 일관성을 훼손 시킬 수 있다. 


그래서 이번 글에서는 싱글톤과 정적클래스를 표로 간단히 비교해 보았다. 


싱글톤

정적 클래스 

인스턴스 생성 가능 

인스턴스 생성 불가능

힙에 저장

스택에 저장

OOP(객체 지향 프로그래밍)규칙을 준수한다.

OOP규칙을 준수하지 않는다.

상속 가능

상속 불가능

인터페이스 구현 가능

인터페이스 구현 불가능

느슨하고, 비동기적인 초기화가 가능하다. 

보통 첫 사용시 초기화

클래스가 포함하고 있는 프로그램 혹은 Namespace가 로드 될때 CLR(common language runtime)에서 자동으로 로드 된다.


컴파일 시점에 검사한다.















관련 글


2013/12/04 - [유니티 개발 정보/프로그래밍] - 유니티에서 정적(static) 변수 사용하기


2013/12/03 - [유니티 개발 정보/프로그래밍] - 유니티에서 Static IEnumerator 호출하기


2013/11/12 - [유니티 개발 정보/프로그래밍] - 유니티에서 싱글톤을 만드는 4가지 방법