El patrón Flyweight es útil si necesita una gran cantidad de instancias de un tipo particular. Aísla los datos que son iguales para todas estas instancias (el estado intrínseco) en un objeto compartido. Solo conserva los datos que varían por instancia en las instancias en sí (el estado extrínseco). El beneficio es, obviamente, menos consumo de memoria.
Es un patrón común en la industria del juego donde el ejemplo habitual es Soldiers en el campo de batalla. Todos los soldados comparten la misma representación gráfica y las mismas armas, pero su posición y salud es diferente. El estado extrínseco sería solo sus coordenadas de salud y x/y/z en el campo de batalla, mientras que todo lo demás estaría en el peso mosca.
Las implementaciones de PHP para este patrón son fáciles de encontrar en la web. Por ejemplo
Busqué en Google 'php flyweight pattern' y miré los primeros 3 resultados. Cada uno proporcionó un tutorial completo y ejemplos extensos. –