ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 싱글턴 패턴
    개발/디자인 패턴 2020. 1. 16. 10:05

    싱글턴 패턴을 사용해 인스턴스가 하나뿐인 객체를 만들 수 있다. 이 패턴이 적용된 객체는 하나만 생성될 수 있고, 어디서든 접근할 수 있다. 스레드 풀, 캐시, 대화상자, 설정, 디바이스 드라이버 등 클래스의 객체가 오직 하나만 생성되는 경우 사용한다.

     

    기본적인 싱글턴 패턴

    싱글턴 패턴 클래스는 private static 스스로의 객체(_instance) 를 갖는다. protected를 통해 기본 생성자를 클래스 외부에서 호출할 수 없게 하고, 새로운 public static 메소드를 통해 만들어진 객체가 없을 때만 작동하는 생성자를 만든다.

     

     

    Lock object 를 추가한 싱글턴

    멀티 스레드 애플리케이션에서 동시에 인스턴스를 호출하는 경우를 대비해 Lock object를 추가할 수 있다. 특정 블럭의 코드를 하나의 스레드만 실행할 수 있게 한다.

     

    C#을 사용해 최척화한 싱글턴

    C#의 private 생성자, readonly(읽기 전용)와 seal(상속 봉인)을 사용해 최척화할 수 있다.

     

    Unity 예제 코드

    private static BattleSimulator _instance;
    
        public static BattleSimulator Instance
        {
            get { return _instance; }
        }
    
        private void Awake()
        {
            if (_instance != null && _instance != this)
            {
                Destroy(this.gameObject);
                return;
            }
    
            _instance = this;
            DontDestroyOnLoad(this.gameObject);
        }

    '개발 > 디자인 패턴' 카테고리의 다른 글

    빌더 패턴  (0) 2020.01.16
    추상 팩토리 패턴  (0) 2020.01.16
    팩토리메소드 패턴  (0) 2020.01.16
    디자인패턴이란  (0) 2020.01.16
Designed by Tistory.