Пул объектов (Object Pool) — различия между версиями
Материал из Вики ИТ мехмата ЮФУ
Admin (обсуждение | вклад) (→Описание) |
Admin (обсуждение | вклад) (→Использование) |
||
Строка 11: | Строка 11: | ||
=== Использование === | === Использование === | ||
+ | Паттерн '''Пул объектов''' используется когда: | ||
+ | * Программа может создать только ограниченное число экземпляров некоторого класса | ||
+ | * Экземпляры класса являются взаимозаменяемыми. Если есть сразу несколько экземпляров, то можно выбрать любой. | ||
+ | * Объект требует значительных ресурсов на свое создание | ||
+ | * Объекты постоянно создаются-уничтожаются и в каждый момент времени используется небольшое их число | ||
=== Реализация === | === Реализация === |
Версия 07:16, 7 октября 2014
Назначение
Обеспечивает интерфейс для работы с набором инициализированных и готовых к использованию объектов.
Описание
Создание экземпляров некоторого класса может требовать довольно больших затрат. В этом случае решением может быть создание в начале работы программы объектного пула - набор инициализированных и готовых к использованию объектов. Когда системе требуется объект, он не создаётся, а берётся из пула. Когда объект больше не нужен, он не уничтожается, а возвращается в пул.
Особенно заметно повышение производительности когда объекты часто создаются-уничтожаются, но одновременно существует их небольшое число.
Использование
Паттерн Пул объектов используется когда:
- Программа может создать только ограниченное число экземпляров некоторого класса
- Экземпляры класса являются взаимозаменяемыми. Если есть сразу несколько экземпляров, то можно выбрать любой.
- Объект требует значительных ресурсов на свое создание
- Объекты постоянно создаются-уничтожаются и в каждый момент времени используется небольшое их число