Flyweight

Warning: This post isn’t ready
I’m translating this:

Flyweight

Problema: Se usa demasiada memoria en tu proyecto y buscas formas de optimizar

Solución: El flyweight reduce el impacto en memoria de tu programa al compartir un objeto entre varios otros para no tener que hacer cientos o miles de copias de este con información idéntica. Por ejemplo, imagina una simulación sobre un hormiguero. No es factible crear millones de copias de un objeto con la misma información.

Fundamento:


En el programa existe una factoría flyweight (que debería ser además singleton para poder llamarla desde cualquier sitio) que lo que hace realmente es almacenar todos los objetos flyweight que se han creado y lo que hace es que si el objeto existe, te lo devuelve. El objeto puede ser compartido o no, eso da igual, pero si en dos objetos distintos necesitas usar el mismo objeto, con el flyweight factory recibes el mismo objeto y no tienes que crearte dos objetos distintos con los mismos valores para hacer lo mismo.

Ejemplo:

Leave a Reply