Шаблон Flyweight полезен, если вам нужно большое количество экземпляров определенного типа. Вы изолируете одинаковые для всех этих данных данные (внутреннее состояние) в общий объект. Вы сохраняете только данные, которые варьируются для каждого экземпляра, в самих экземплярах (внешнее состояние). Преимущество заключается в меньшем потреблении памяти.
Это распространенная модель в игровой индустрии, где обычным примером являются солдаты на поле боя. Все солдаты имеют одинаковое графическое представление и одинаковое оружие, но их положение и здоровье различны. Внешним состоянием будет тогда только их здоровье и координаты x / y / z на поле битвы, в то время как все остальное будет в Flyweight.
PHP Реализации этого шаблона легко найти в Интернете. Например