辛格爾頓用C#實現的可能是這樣的:靜態屬性和單例之間有什麼區別?
public class Singleton
{
private static Singleton instance;
private Singleton() {}
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
如果我使用靜態實現它想:
public static class Globals{
public static Singleton Instance = new Singleton();
}
這樣
,應用程序還應該只得到一個實例整個應用程序。 那麼這兩種方法有什麼區別?爲什麼不直接使用靜態成員(更簡單直接)?
我們需要聲明*靜態構造函數*在這裏線程安全的? –
@CongLong不與'懶惰'版本。這是非常好的,它提供了適當的線程安全性和完美的懶惰實例化,並帶有一個簡單的API。 –
啊,是的,我明白了,+1 –