2014-05-09 104 views
-2

這裏有兩個類的代碼,一個是單例,另一個是靜態類。我喜歡在編程時理解什麼時候應該使用靜態類,何時應該使用Singleton類?靜態類和單一類的主要區別是什麼

兩者都用於保存全局對象,因此我們可以在程序運行時從任何地方訪問這些數據。適用範圍廣泛,適用壽命長。

1)我真的沒有找到任何文章,可以指導我,當我應該使用靜態類和單身類應該是不錯的選擇。我看到人們使用Singleton類管理數據庫連接。

2)Singleton類&靜態類的主要區別是什麼?

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; 
      } 
     } 
    } 
} 

public static class TestStatic //: ITestSingleton 
    { 
     public static void doAction(string args) 
     { 
      Console.WriteLine("Test Static :: " + args); 
     } 
    } 

回答

0

使用靜態修飾符聲明的靜態成員,屬於類型本身,而不是一個特定對象。靜態修飾符可以與類,字段,方法,屬性,運算符,事件和構造函數一起使用,但不能與索引器,析構函數或類以外的類型一起使用。

使用,當你需要的是隻有一個實例類,你需要提供一個全局訪問點的情況下

+0

只是告訴我應用程序開發相關的情況,我應該使用靜態類,當我應該使用單例類? – Thomas

+0

我使用單例主要用於數據庫連接,如數據訪問對象。 –

+0

*不能與索引器一起使用*捕捉到我的眼睛。足夠單獨使用靜態類從單身已經。 – Sinatr

0

單身是basiccly切入點一類的一個實例。該類的實例可以作爲參考傳遞給另一個方法。

靜態類不具有此行爲(只允許使用靜態方法)。

相關問題