2014-03-05 64 views
1

我剛纔通過以下簡單的代碼讓我的班單:辛格爾頓和其他參數的構造函數

public sealed class Singleton 
{ 
    private static Singleton instance=null; 

    private Singleton() 
    { 
    } 

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

現在,我也希望能夠設置使用構造函數的一些性質。不過,我有點擔心,因爲這是我第一次與單身。我有以下問題:

  1. 怎樣纔可以有其他參數的構造函數,並確保當一個客戶端應用程序使用我的課,他們得到單。

  2. 有多個構造函數與單例類是不是一個好主意?

  3. 什麼是多個調用新的「參數化構造函數」具有不同的值?

+6

一個外部構造函數打敗了單例的整個想法。你不能實例化單身人士,這就是保持它*單*。 –

+0

好吧,這意味着單身人士是唯一的無國籍客體,像serviecs? – TeaLeave

+0

單身人士可以有一個狀態,它只是在所有實例之間共享,實例數量總是等於1.單身人士通常是無狀態的,但主要是因爲它是有意義的,並不一定是要求。 –

回答

1

單身人士是無國籍的,不應該有任何狀態。通過查看你的問題,你正在尋找一個可以由Singleton創建的工廠模式。我認爲這個鏈接將幫助你factory-method-and-singleton-patterns