관리 메뉴

caLAB

[디자인 패턴 C#] 싱글톤(Singleton) 본문

개발 공부/컴퓨터 과학

[디자인 패턴 C#] 싱글톤(Singleton)

도이(doi) 2021. 6. 29. 13:03
728x90

객체의 인스턴스가 오직 1개만 생성되는 패턴. 

객체가 생성되어 있을 때는 인스턴스를 생성하지 않고 기존에 만들어진 instance를 가져옴. 

 

주로, Manager 스크립트 처럼 인스턴스가 한개만 필요한 경우에 사용. 

값을 전달할 때도 용이하게 사용됨. 

 

아래는 Singleton의 기본적인 사용 방법에 대해서 스크립트 정리해두었다.

- 싱글톤 생성

- 변수 공유

- 싱글톤 class에 있는 함수 실행

using System;

namespace signleton_Test
{
    class Program
    {
        // singleton Instance하기 
        static Singleton s1 = Singleton.Instance();

        static void Main(string[] args)
        {
            //singleton 내부 함수 실행 => 바로 실행
            Singleton.Instance().seFunction();
            //singleton 내부 함수 실행 => 전역 변수 선언 후 (추천)
            s1.seFunction();
            //변수 공유
            Console.WriteLine("\nshare value test_before_add : " + s1.test);
            s1.test++;
            Console.WriteLine("\nshare value test_after_add : " + s1.test);
        }
    }

    //s1 : 기본 싱글톤 사용 예제
    public class Singleton
    {
        private static Singleton instance;
        public int test = 1;

        private Singleton()
        {
            Console.WriteLine("s1 : this is basic Singleton format.");
        }

        public static Singleton Instance()
        {
            if (instance == null)
            {
                instance = new Singleton();
            }
            else
            {
                Console.WriteLine("\ns1 : singleton is already instanced.");
            }
            return instance;
        }

        public void seFunction()
        {
            Console.WriteLine("\ns1 : this is function inside of the Singleton class.");
        }
    }
}

결과

728x90
반응형
Comments