Basic/C#

C# 클래스 인스턴스 하나만 만드는 방법

에반황 2016. 12. 14. 16:16


이 글은 PC 버전 TISTORY에 최적화 되어있습니다.



이론

 이전에 JAVA에서의 Static에 대해서 다뤘었습니다. C#도 같은 방식으로 통하니 Static에 대해 잘 모르신다면 먼저 보고 와주세요. 그럼 Static으로 어떻게 클래스 인스턴스를 의도적으로 한 개만 만들게 할 수 있을까요? 바로 생성자를 private로 선언하여 외부에서 new로 생성하지 못하게 하는 것 입니다.





실행코드

class Car
{
    static public Car bumblebee = new Car("범블비"); // public 정적 필드

    string _model;

    private Car(String model)
    {
        _model = model;
    }

    public void InformModel()
    {
        Console.WriteLine(_mode);
    }
}


위와 같이 생성자를 private 한정자로 만들어두면 외부에서는 new로 생성할 수 없습니다. 하지만 정적 필드에 이미 생성해두었기 때문에 Car.InformModel() 같은 방법으로 접근이 가능합니다. 이렇게 하나의 인스턴스만 생성되는 클래스를 싱글턴 클래스라고 합니다.










반응형