Одинак (Singleton)

1. Один об'єкт класу 
2. Обмежена кількість об'єктів класу


        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