C# Шаблон Одинак (Singleton)

 

Один об’єкт класу
Обмежена кількість об’єктів класу

 

class Single
{
  private static Single single = null;

  protected Single() {
  }

  public static Single Initialize()
  {
    if (single == null)
    {
      single = new Single();
    }
    return single;
  }
}

static void Main(string[] args)
{ 
  // Single s1 = new Single(); не має доступу
  Single s1 = Single.Initialize();
  Console.WriteLine(s1.GetHashCode());  // унікальний ідентифікатор об'єкту
  Single s2 = Single.Initialize();
  Console.WriteLine(s2.GetHashCode());
  Console.ReadKey();
}

46104728
46104728