Java як використовувати singleton клас

Метою Сінглтона є контроль створення об'єкта, обмежуючи число obejcts тільки один. Оскільки існує тільки один екземпляр Singleton, будь-якого примірника поля одноточечного відбуватиметься тільки один раз в класі, так само, як статичні поля. Одинаки часто контролюють доступ до таких ресурсів, як підключення до баз даних або гнізда.

Наприклад, якщо у вас є ліцензія тільки для одного з'єднання для бази даних або драйвер JDBC має проблеми з багатопоточність, то Singleton гарантує, що тільки одне з'єднання зроблено або що тільки один потік може отримати доступ до з'єднання в той час.

Реалізація Singletons

Найпростіший реалізація складається з приватного конструктора і поле для утримання його результат, і статичний метод аксессор з таким ім'ям, як GetInstance ().

Приватне поле може бути призначено в межах статичного ініціалізатор блоку або, простіше кажучи, використовуючи ініціалізатор. Метод деИпзЬапсе () (який повинен бути публічним), то просто повертає цей екземпляр -

Ось основний файл програми, де ми створимо об'єкт одноелементна:

Це зробить наступний результат -

Після реалізації показує класичний шаблон проектування Singleton:

Клас ClassicSingleton підтримує статичну посилання на самотнього одноелементний екземпляр і повертає посилання з методу статичної деИпзЬапсе ().

Тут клас ClassicSingleton використовує техніку, відому як ледачого конкретизації для створення одноелементна; в результаті, одноелементний екземпляр не буде створено, поки метод деИпзЬапсе () не викликається в перший раз. Цей метод гарантує, що одноелементні екземпляри створюються тільки тоді, коли це необхідно.

Схожі статті