software pattern patrón patrones patron orientado objetos los historia elementos diseño creacion design-patterns flyweight-pattern objectpool

design patterns - pattern - Patrones flyweight vs pool de objetos: ¿Cuándo cada uno es útil?



patrones de diseño de software (3)

Al menos dos grandes diferencias vienen a la mente:

  • Un grupo de objetos es un contenedor para un conjunto de objetos de dominio, mientras que un flyweight suele ser un objeto de dominio.
  • Un grupo de objetos generalmente contiene un conjunto de objetos similares que se pueden compartir al mismo tiempo, como las conexiones a la base de datos, mientras que normalmente hay un conjunto de diferentes objetos flyweight, cada uno representa un estado diferente.

Por lo que sé, el conjunto de objetos es un patrón creacional y el peso mosca es un patrón estructural, pero en realidad no veo mucha diferencia entre esos dos patrones. ¿Podría alguien explicarme la diferencia y cuándo podría ser útil? una implementación?


Este sitio describe ambos patrones con ejemplos específicos. Hace un buen trabajo clarificando la diferencia y apoya la respuesta de Gabriel anterior. http://www.oodesign.com/


Una diferencia en los pesos volantes son instancias comúnmente inmutables, mientras que los recursos adquiridos del grupo generalmente son mutables.

Por lo tanto, crea picos flotantes para evitar el costo de crear repetidamente instancias múltiples de objetos que contienen el mismo estado (porque todos son iguales, solo crea uno y lo vuelve a usar en todos los lugares de la aplicación), mientras que los recursos de un grupo son particulares recursos que desea controlar individualmente y posiblemente tengan un estado diferente, pero no desea pagar el costo de creación y destrucción porque todos se inicializan en el mismo estado.