'OOP'에 해당되는 글 1건

  1. 2016.08.02 C# Singleton - Private Constructor 사용방법
개발팁2016. 8. 2. 07:59

OOP 디자인 패턴중에 Singleton 이라는 것이 있다.

 

일반적으로 클래스는 new 키워드를 통해서, 인스턴스를 생성하지만,
Singleton 클래스는 인스턴스가 1개만 생성이 된다.

 

생성자 즉, Constructor 를 private 으로 선언한다.
이렇게 되면, 외부에서 new 키워드로 인스턴스를 생성할 수 없다.
클래스 내부에서만 new 키워드를 사용하여, 자기 자신의 인스턴스를 생성이 가능하다.

 

아래 클래스 선언 방법대로, getInstance 를 static 으로 선언하고,
자기 자신의 인스턴스를 돌려주게 되면, 단 1개의 인스턴스만 생성하여 사용하게 된다.

 

public class MyClass
{
 private MyClass() { }

 private static MyClass instance;

 public static MyClass getInstance()
 {
  if(instance == null)
   instance = new MyClass();

  return instance;
 }

 public int Method1()
 {
  return 1;
 }
}

 

 

사용시에는 아래와 같이 사용한다.

 

MyClass myc = MyClass.getInstance();
int n = myc.Method1();

Posted by 헝개