Сайт вебмастера

Шаблон Multiton (Пул одиночек)

08-07-2019Reading time ~ 1 min.PHP/ООП 7585

Multiton (Пул одиночек) — представляет собой развитие шаблона Singleton, где вместо единственного экземпляра можно создать и использовать множество. С практической точки зрения мультитон может использоваться для создания однотипных классов, которые не должны между собой пересекаться. Самый простой пример — работа с несколькими конфигурациями, где каждый класс мультитона хранит какой-то свой набор данных.

Код Multiton вы найдете на гитхабе.

В отличие от Одиночки, вызов/создание мультитона происходит с параметром, который идентифицирует объект.

$foo1 = Foo::getInstance('Alpha');
$foo2 = Foo::getInstance('Beta');

В данном примере — это будут два несвязанных между собой объекта. В этом плане Multiton похож на Factory Method (Фабричный метод), только без использования наследования.

С моей точки зрения, Multiton можно использовать очень обдумано, в реальных условиях лучше обходиться более «классическими» методами. На основе мультитона можно создать другой шаблон проектирования Registry, который используется для создания глобальной области видимости. Но об этом в другой раз. :)

Related Posts