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

Шаблон Flyweight (Приспособленец)

07-11-2019Reading time ~ 1 min.PHP/ООП 5683

Приспособленец — структурный шаблон проектирования, который позволяет получать доступ к объектам предотвращая их повторное инстанцирование. Flyweight имеет смысл при работе с множеством мелких однотипных классов, к которым удобно обращаться через единую точку входа.

Исходный код я разместил на гитхабе.

Итак. Пусть у нас есть несколько однотипных классов (ClassA, ClassB, ClassC), которые выполняют какую-то свою работу. При желании можно реализовать их от общего интерфейса.

Когда классов много, то каждый из них не совсем удобно инстанцировать отдельно. Вместо этого создается класс FlyweightFactory: он сам создает объект, но делает это только один раз. При повторном вызове возвращается уже готовый объект. Такой алгоритм позволяет оптимизировать расход памяти программы.

Related Posts