Пул одинаків (англ. Multiton) - схожий на шаблон Одинак.
Дозволяє створювати та утримувати кілька одинаків, доступ до яких можна отримати за унікальним “ключем”.
Продовжуємо тему нашої закусочної. Бізнес йде в гору, і ми встановлюємо ще кілька касових апаратів.
Для зручного доступу до всіх апаратів ми створимо систему ShopCashSystem, яку і реалізує наш Multiton.
Як і з Singleton, ми закрили всі магічні методи. Для доступу до об’єкта використовується
статичний метод ShopCashSystem::getInstance().
Застосування:
Два об’єкти для доступу до баз даних, наприклад, один для MySQL, а другий для SQLite
Декілька логуючих об’єктів (один для налагоджувальних повідомлень, інший для помилок тощо)
Примітка:
Іноді цей шаблон називають Реєстр одинаків.
Нагадаю про антипаттерн Самотність (Singletonitis).