русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Призначення патерну Singleton


Дата додавання: 2014-10-07; переглядів: 947.


Часто в системі можуть існувати сутності тільки в єдиному екземплярі, наприклад, система ведення системного журналу повідомлень або драйвер дисплея. У таких випадках необхідно вміти створювати єдиний екземпляр деякого типу, надавати до нього доступ ззовні і забороняти створення декількох екземплярів того ж типу.

Патерн Singleton надає такі можливості.

Опис патерну Singleton

Архітектура патерну Singleton заснована на ідеї використання глобальної змінної, що має такі важливі властивості:

Така змінна доступна завжди. Час життя глобальної змінної - від запуску програми до її завершення.

Надає глобальний доступ, тобто, така змінна може бути доступна з будь-якої частини програми.

Однак, використовувати глобальну змінну деякого типу безпосередньо неможливо, оскільки існує проблема забезпечення єдиності примірника, а саме, можливе створення декількох змінних того ж самого типу (наприклад, стекових).

Для вирішення цієї проблеми патерн Singleton покладає контроль над створенням єдиного об'єкта на сам клас. Доступ до цього об'єкта здійснюється через статичну функцію-член класу, яка повертає покажчик або посилання на нього. Цей об'єкт буде створений тільки при першому зверненні до методу, а всі наступні виклики просто повертають його адресу. Для забезпечення унікальності об'єкта, конструктори і оператор привласнення оголошуються закритими. UML-діаграма класів патерну Singleton

UML-діаграма класів патерну Singleton

Патерн Singleton часто називають вдосконаленою глобальної змінної.

 


<== попередня лекція | наступна лекція ==>
Перелік шаблонів поведінки | Реалізація патерну Singleton


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн