Одинак (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