백지부터 시작하는 이세계 코딩 생활

Singleton 본문

백지부터 시작하는 이세계 유니티 생활 since 2020

Singleton

조아덕 2020. 11. 19. 12:29
Singletone

싱글톤(Singleton) 패턴은 단 하나의 인스턴스를 생성해 사용하는 디자인 패턴이다.
( 따라서 싱글톤을 사용할 때는 static 타입으로 지정해준다 ) 생성된 인스턴스는 static 메모리에 할당되어 존재하게 된다.

싱글톤으로 구현된 오브젝트는 참조될 때 마다 새로 생성되는 것이 아니라 static 에 할당되어 있던
오브젝트(인스턴스)를 반환해주게 된다.

static

프로그램이 실행 될 때 한번만 할당된다. 따라서 static 변수의 Life cyccle프로그램이 종료되기 전까지 이다.
static 변수의 scope전역변수의 scope 와 유사하다.

private

외부 접근이 불가하며 내부 ( Class ) 에서만 사용할 수 있다.
코드의 유지 보수 시 코드의 tracking 시간을 줄일 수 있으며 가독성을 높일 수 있다.
메모리 관리가 수월해지며 퍼포먼스에 효율이 좋다.

효과 : 

하나의 인스턴스를 만들어서 사용하기 때문에 인스턴스의 내용이 변경되면
변경된 값 그대로 static 메모리에 존재하게 된다. -->
상대적으로 메모리 낭비가 적으며 ,

프로그램이 시작될 때 한번 선언이 되고 나면, 
프로그램이 종료되지 않는 한 선언해제가 되지 않는다는 특징이 있다.
따라서 static 메모리에 저장된 값은 사용후 해제되지 않고 static에 보존된다.

public class MobileRig : MonoBehaviour
{
    #region SINGLETON
    public static MobileRig mobileRig = null;
    public static MobileRig Instance
    {
        get
        {
            if (mobileRig == null)
                mobileRig = FindObjectOfType<MobileRig>();
            return mobileRig;
        }
    }
    
    ...
}




cf. 참고하면 좋을 듯 한 정보

glikmakesworld.tistory.com/2

 

유니티 디자인패턴 - 싱글톤 (Unity Design Patterns - Singleton)

싱글톤 패턴은 초보 개발자들이 가장 많이 쓰는 디자인 패턴이 아닐까 싶다. 클래스 구조를 짜다보면 다른 클래스의 함수를 사용해야 할 수도 있고, 전체 클래스들이 공유하는 전역변수가 필요

glikmakesworld.tistory.com

 

'백지부터 시작하는 이세계 유니티 생활 since 2020' 카테고리의 다른 글

struct 와 Class  (0) 2020.11.26
Raycast, RaycastHit, DrawRay  (0) 2020.11.24
PointerEventData  (0) 2020.11.19
Dictionary  (0) 2020.11.18
magnitude  (0) 2020.11.18
Comments