유니티에서 스크립트를 작성하다보면, 어디서든지 접근할 수 있는, 그리고 오직 하나의 인스턴스만 필요로 하는
Manager Class 혹은 Helper Class를 만들어야 하는 일이 발생할 것이다.
이 경우 보통 싱글톤 패턴이나, 정적 클래스로 많이 제작을 한다. 하지만 둘의 차이점을 제대로 인지 하지 못하고 사용하게되면 어떨땐 싱클톤으로 어떨땐 정적클래스로 만들어 코드의 일관성을 훼손 시킬 수 있다.
그래서 이번 글에서는 싱글톤과 정적클래스를 표로 간단히 비교해 보았다.
싱글톤 |
정적 클래스 |
인스턴스 생성 가능 |
인스턴스 생성 불가능 |
힙에 저장 |
스택에 저장 |
OOP(객체 지향 프로그래밍)규칙을 준수한다. |
OOP규칙을 준수하지 않는다. |
상속 가능 |
상속 불가능 |
인터페이스 구현 가능 |
인터페이스 구현 불가능 |
느슨하고, 비동기적인 초기화가 가능하다. 보통 첫 사용시 초기화 |
클래스가 포함하고 있는 프로그램 혹은 Namespace가 로드 될때 CLR(common language runtime)에서 자동으로 로드 된다. |
컴파일 시점에 검사한다. |
관련 글
2013/12/04 - [유니티 개발 정보/프로그래밍] - 유니티에서 정적(static) 변수 사용하기
2013/12/03 - [유니티 개발 정보/프로그래밍] - 유니티에서 Static IEnumerator 호출하기
2013/11/12 - [유니티 개발 정보/프로그래밍] - 유니티에서 싱글톤을 만드는 4가지 방법
'유니티 개발 정보 > 프로그래밍' 카테고리의 다른 글
Reactive Extenstion(Rx) - 2 (0) | 2016.02.12 |
---|---|
Reactive Exntenstion(Rx) - 1 (0) | 2015.07.22 |
New Unity Messaging System (0) | 2015.03.18 |
유니티에서 정적(static) 변수 사용하기 (4) | 2013.12.04 |
유니티에서 Static IEnumerator 호출하기 (0) | 2013.12.03 |