Language/C#

[C#] Singleton (싱글톤)

Linuxias 2013. 12. 4. 16:08
반응형

 Singleton Pattern 이란?


  -해당 클래스의 인스턴스가 하나만 생성하여, 어느 객체에서든 하나의 인스턴스로 접근 가능하도록 한다.

  

   어디서든 하나의 인스턴스로 관리 및 조작해야할 필요가 있을 때 사용된다 !


 

   


싱글톤 패턴에서는 생성자를 private로 선언하여 절대 외부에서 노출되지 않도록 합니다.


instance라는 멤버 변수를 사용해서 static으로 전역에서 접근 가능한 


메소드를 이용하여 인스턴스 만을 반환합니다.


그렇기 때문에 어디 어느 곳에서나 하나의 인스턴스로 조작 관리 가능합니다.!



   시스템에서 전역으로 관리되고 단하나의 클래스에서만 정보가 유지되는 것을 원할때


   -보통 시스템 자원관리나 정보를 관리합니다. 


예를 들어서, 프린터가 하나있는데 그것에 대한 접근 인스턴스가 여러개가 생성이 되어서 


사용이 된다면 데드락이나 오류현상이 발생할 요지가 큽니다.


이럴때 하나의 클래스에서만 관리해주면 해결이 됩니다.


이제 코드를 보자 !



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public sealed class Singleton
{
    static Singleton instance=null;
    static readonly object padlock = new object();
 
    Singleton()
    {
    }
 
    public static Singleton Instance
    {
        get
        {
            lock (padlock)
            {
                if (instance==null)
                {
                    instance = new Singleton();
                }
                return instance;
            }
        }
    }
}



반응형