/*
* ПОРОЖДАЮЩИЕ ПАТТЕРНЫ
*
* Глава_8: Сиглтон, Одиночка (Singleton)
*
* - гантирует, что у класса есть только один экземпляр,
* и предоставляет глобальную точку доступа к нему
*/
class Singleton
{
private Singleton()
{
Data = 28;
MoreData = 90;
}
public int Data { get; set; }
public int MoreData { get; set; }
///
/// Отложенный синглтон (ленивый одиночка)
///
static Lazy uniqueInstance = new Lazy(() => new Singleton());
public static Singleton Instance => uniqueInstance.Value;
}
class Program
{
public static void Main()
{
Console.WriteLine(Singleton.Instance.Data);
}
}