Singleton wdrażane z C# może być tak:Jaka jest różnica między właściwością statyczną a pojedynczą?
public class Singleton
{
private static Singleton instance;
private Singleton() {}
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
Jeśli używam statyczny wdrożyć to lubią:
public static class Globals{
public static Singleton Instance = new Singleton();
}
w ten sposób, aplikacja powinna również uzyskać tylko jedno wystąpienie dla całej aplikacji. Jaka jest różnica między tymi dwoma podejściami? Dlaczego nie skorzystać bezpośrednio z elementu statycznego (prostszego i prostszego)?
Czy musimy zadeklarować konstruktora statycznego * * tu do wątku bezpieczny? –
@CuongLe Nie z wersją 'Lazy'. Jest to bardzo miłe, ponieważ zapewnia właściwe bezpieczeństwo wątku i doskonałe leniwe tworzenie, za pomocą prostego interfejsu API. –
Ah, tak, mam to, +1 –