Универсальный синглтон <T>
У меня есть вопрос, это правильный подход к созданию универсального синглтона?
public class Singleton<T> where T : class, new()
{
private static T instance = null;
private Singleton() { }
public static T Instancia
{
get
{
if (instance == null)
instance = new T();
return instance;
}
}
}
РЕДАКТИРОВАТЬ:
Проверяя некоторые PDF-файлы, я обнаружил, что универсальный синглтон сделан по-другому, это правильно?
public class Singleton<T> where T : class, new()
{
Singleton() { }
class SingletonCreator
{
static SingletonCreator() { }
// Private object instantiated with private constructor
internal static readonly T instance = new T();
}
public static T UniqueInstance
{
get { return SingletonCreator.instance; }
}
}