2014-05-01 6 views
0

싱글 톤 패턴에 문제가 있다는 의문이 있습니다. 내가 Singleton 클래스의 객체를 만들고 그것을 직렬화한다고합시다.싱글 톤 디자인 문제 : (싱글 톤 클래스의 두 객체 만들기)

이제 서버를 다시 시작합니다.

다시 Singleton 클래스의 인스턴스를 만든 다음이를 역 직렬화한다고 가정 해보십시오. 두 개의 객체를 만듭니다.

이렇게하면 싱글 톤 패턴이 손상됩니다. 두 번째 객체가 생성되지 않도록 어떻게 그것을 해결합니까?

+3

코드에 이상이 있습니다. 몇 가지 코드를 보여주십시오. –

+0

사용하는 언어는 무엇입니까? 귀하의 질문은 언어에 따라 다릅니다. –

답변

0

싱글 톤의 올바른 구현은 둘 이상의 인스턴스를 생성하지 않습니다. 이렇게하는 방법은 다소 언어 의존적입니다. 예 : http://csharpindepth.com/Articles/General/Singleton.aspx

public sealed class Singleton 
{ 
    private static Singleton instance = null; 
    private static readonly object padlock = new object(); 

    Singleton() 
    { 
    } 

    public static Singleton Instance 
    { 
     get 
     { 
      lock (padlock) 
      { 
       if (instance == null) 
       { 
        instance = new Singleton(); 
       } 
       return instance; 
      } 
     } 
    } 
}