스토리지

[3.25] 싱글턴 패턴 본문

Unity/수업내용(C#)

[3.25] 싱글턴 패턴

ljw4104 2021. 3. 25. 11:43
  • 객체의 생성에 관련된 패턴
  • Singleton 디자인 패턴은 하나의 클래스가 단지 하나의 인스턴스만 갖도록 제한한다.
  • 전역 범위에서 그 인스턴스를 액세스할 수 있게 하는 패턴이다. => 언제 어디서든 접근 가능해야한다.
static 싱글턴
컴파일 타임에 메모리에 적재
스택에 저장됨
클래스 확장 및 인터페이스 구현 가능
원하는 시점에 메모리에 올릴 수 있음
힙에 저장됨
  • 클래스의 생성자를 private로 만들어서 클래스 내부에서 생성되게 한다. 
  • Client 클래스는 Singleton 인스턴스를 얻은 후, Singleton 클래스의 멤버들을 액세스하게 된다.
  • Singleton 인스턴스는 클라이언트가 처음 Singleton 인스턴스를 액세스할 때 생성된다. 이후 프로그램이 종료될 때 까지 동일한 인스턴스를 사용한다.

 

구현 기본예제

public sealed class Singleton
{
    //static으로 선언함으로써 형식으로 접근할 수 있게 함.
    public static readonly Singleton Instance = new Singleton();

    private Singleton()
    {
        //생성자가 private
    }

    public void MethodTest()
    {
        Console.WriteLine("Singleton Method");
    }
}

public class Client
{
    public static void HowToTest()
    {
        //형식으로 싱글턴 클래스에 접근하고 있다.
        Singleton.Instance.MethodTest();
    }
}
Comments