Skip to content

Singleton

Sofia Kirillova edited this page Apr 30, 2017 · 1 revision

Назначение:

Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.

Применимость:

Используйте паттерн одиночка, когда:

  • Должен быть ровно один экземпляр некоторого класса, легко доступный всем клиентам;
  • Единственный экземпляр должен расширяться путем порождения подклассов, и клиентам нужно иметь возможность работать с расширенным экземпляром без модификации своего кода.

Структура:

Imgur

Участники:

  • Singleton - одиночка: определяет операцию Instance, которая позволяет клиентам получать доступ к единственному экземпляру. Instance – это метод класса и статическая функция-член в C++; Может нести ответственность за создание собственного уникального экземпляра.

Результаты:

У паттерна одиночка есть определенные достоинства:

  • Контролируемый доступ к единственному экземпляру;
  • Уменьшение числа имен;
  • Допускает уточнение операций и представления;
  • Допускает переменное число экземпляров;
  • Большая гибкость, чем у операций класса.

Clone this wiki locally