Скачать презентацию Паттерн Singleton Паламарчук Ирина Пучина Наталя ПМ-09 -2 Скачать презентацию Паттерн Singleton Паламарчук Ирина Пучина Наталя ПМ-09 -2

Паттерн Singleton.pptx

  • Количество слайдов: 9

Паттерн Singleton Паламарчук Ирина, Пучина Наталя ПМ-09 -2 Паттерн Singleton Паламарчук Ирина, Пучина Наталя ПМ-09 -2

Название и назначение Название Одиночка - паттерн, порождающий объекты. Назначение Гарантирует, что у класса Название и назначение Название Одиночка - паттерн, порождающий объекты. Назначение Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.

Структура Структура

Пример кода class Maze. Factory { public: static Maze. Factory* Instance(); // здесь находится Пример кода class Maze. Factory { public: static Maze. Factory* Instance(); // здесь находится существующий интерфейс protected: Maze. Factory(); private: static Maze. Factory* „instance; }; Maze. Factory* Maze. Factory: : _instance = 0; Maze. Factory* Maze. Factory: : Instance 0 { if (_instance == 0) { _instance = new Maze. Factory; } return _instance; }

Пример кода Maze. Factory* Maze. Factory: : Instance () { if (_instance == 0) Пример кода Maze. Factory* Maze. Factory: : Instance () { if (_instance == 0) { const char* maze. Style = getenv("MAZESTYLE"); if (strcmp(maze. Style, "bombed") == 0) { „. instance = new Bombed. Maze. Factory; } else if (strcmp(maze. Style, "enchanted") == 0) { _instance = new Enchanted. Maze. Factory; //. . . другие возможные подклассы } else { // по умолчанию _instance = new Maze. Factory; } } return _instance; }

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

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

Родственные паттерны С помощью паттерна одиночка могут быть реализованы многие паттерны, такие как: ü Родственные паттерны С помощью паттерна одиночка могут быть реализованы многие паттерны, такие как: ü абстрактная фабрика ü строитель ü прототип.

Вопросы Что является истинной, а что ложью: 1. Одиночка - паттерн, порождающий объекты. 2. Вопросы Что является истинной, а что ложью: 1. Одиночка - паттерн, порождающий объекты. 2. Недостатком паттерна является уменьшение числа имен. 3. Преимуществом паттерна является контролируемый доступ к единственному экземпляру. 4. Родственных паттернов у Singleton нету. 5. Singleton не гарантирует, что у класса есть только один экземпляр.