본문 바로가기
C#

Singleton(싱글톤)

by ljw 2023. 5. 11.
반응형

싱글톤(Singleton)이란?

싱글톤(Singleton)은 객체 지향 프로그래밍의 디자인 패턴 중 하나로, 특정 클래스의 인스턴스(instance)가 하나만 생성되도록 보장하는 것을 말한다. 이를 통해 전역 변수나 정적 변수를 사용하지 않고도, 어디서든 해당 클래스의 인스턴스를 사용할 수 있다.

싱글톤(Singleton) 구현 방법

싱글톤 구현 방법은 다양하다. 가장 간단한 방법은 해당 클래스의 생성자를 private으로 선언하여 외부에서 객체를 생성하지 못하게 한 후, 정적 메서드를 통해 유일한 인스턴스를 반환하는 것이다.

public class SingletonExample
{
    private static SingletonExample instance = null;
    
    private SingletonExample() { }
    
    public static SingletonExample Instance
    {
        get
        {
            if (instance == null)
            {
                instance = new SingletonExample();
            }
            return instance;
        }
    }
}

위 코드에서 SingletonExample 클래스는 private 생성자를 가지고 있으며, Instance라는 정적 프로퍼티(static property)를 통해 유일한 인스턴스를 반환한다. 이렇게 하면 SingletonExample 클래스의 인스턴스가 하나만 생성되며, 이 인스턴스에 접근하는 방법도 간단해진다.

싱글톤 VS 전역 변수

싱글톤은 전역 변수와 비슷한 역할을 하지만, 전역 변수의 단점을 해결할 수 있다.

전역 변수는 언제든지 변경될 수 있어서, 프로그램의 흐름을 추적하기 어렵다. 또한 전역 변수를 사용하면 해당 변수를 사용하는 모든 코드를 변경해야 되므로, 유지보수가 어려워진다.

이와 다르게, 싱글톤은 유일한 인스턴스를 사용하므로, 전역 변수의 단점을 해결할 수 있다.

반응형

댓글