Я в процессе понимания одноэлементного шаблона. Я написал небольшой кусок кода здесьsingleton pattern - создание объекта
Program.cs:
class Program
{
static void Main(string[] args)
{
SingleObject objtemp = SingleObject.getInstance();\
objtemp.showMessage();
}
}
SingleObject.cs
class SingleObject
{
static SingleObject obj = new SingleObject();
private SingleObject()
{
}
public static SingleObject getInstance()
{
return obj;
}
public void showMessage()
{
Console.WriteLine("Hello Message");
}
}
Я не в состоянии понять, что на самом деле называть SingleObject()
конструктор? Когда я вызываю метод getInstance()
, он возвращает экземпляр правильно?
Лучший способ попасть в шаблон Singleton - прочитать эту тему: http://csharpindepth.com/Articles/General/Singleton.aspx –
Статические элементы автоматически инициализируются при первом использовании/прикосновении/доступе статический класс. – Chris
static SingleObject obj = new SingleObject(); // это поле. Инициализация поля (определенная реализация) * иногда * перед использованием класса - средой выполнения. edit: Я считаю, что это может иметь проблемы (вызов конструктора из инициализатора поля) - конструктор может предположить, что все поля были инициализированы, но это не будет иметь место, если у вас есть больше полей для инициализации после «obj» - они инициализируются в том порядке, в котором они объявлены. – ABuckau