Пул объектов (Object Pool) — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Описание)
(Использование)
Строка 11: Строка 11:
  
 
=== Использование ===
 
=== Использование ===
 +
Паттерн '''Пул объектов''' используется когда:
 +
* Программа может создать только ограниченное число экземпляров некоторого класса
 +
* Экземпляры класса являются взаимозаменяемыми. Если есть сразу несколько экземпляров, то можно выбрать любой.
 +
* Объект требует значительных ресурсов на свое создание
 +
* Объекты постоянно создаются-уничтожаются и в каждый момент времени используется небольшое их число
  
 
=== Реализация ===
 
=== Реализация ===

Версия 07:16, 7 октября 2014

К основной странице курса

Назначение

Обеспечивает интерфейс для работы с набором инициализированных и готовых к использованию объектов.

Описание

Создание экземпляров некоторого класса может требовать довольно больших затрат. В этом случае решением может быть создание в начале работы программы объектного пула - набор инициализированных и готовых к использованию объектов. Когда системе требуется объект, он не создаётся, а берётся из пула. Когда объект больше не нужен, он не уничтожается, а возвращается в пул.

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

Использование

Паттерн Пул объектов используется когда:

  • Программа может создать только ограниченное число экземпляров некоторого класса
  • Экземпляры класса являются взаимозаменяемыми. Если есть сразу несколько экземпляров, то можно выбрать любой.
  • Объект требует значительных ресурсов на свое создание
  • Объекты постоянно создаются-уничтожаются и в каждый момент времени используется небольшое их число

Реализация

Диаграмма классов

Файл:Common.png

Участники

Пример

Достоинства и недостатки

Варианты