SlideShare una empresa de Scribd logo
1 de 7
PATRON DE DISEÑO
ESTRUCTURAL -
FLYWEIGHT
FLYWEIGHT
◻ Los programas que aplican este sistema
tienen comúnmente un tipo de componente
que se repite numerosas veces, y las
instancias tienen una serie de carasteristicas
en común. En este caso el patrón busca
optimizar el tamaño en memoria que
ocupan los objetos para sacar el máximo
partido al sistema y no desaprovechar los
recursos con datos redundantes.
ESTRUCTURA
◻ INTRINSECAS
◻ Hacen referencia los estados comunes que
tiene el objeto o grupo de objetos a replicar.
◻ El objetivo de este patrón es
estudiar las características
comunes de los objetos y crear
una clase extrínseca.
◻ Luego a la hora de realizar las
diferentes instancias, usa la
parte común(intrínseca) y la
complementa con los datos
específicos de la instancia.
◻ EXTRINSECAS
◻ Aluden a las características propias de
la instancia.
Flyweight: Contiene la parte del estado del
objeto original que pueden compartir varios
objetos. El mismo objeto Flyweight puede
utilizarse en muchos contextos diferentes.
Contexto: contiene el estado extrínseco, único
en todos los objetos originales. Cuando un
contexto se empareja con uno de los objetos
flyweight, representa el estado completo del
objeto original.
Quien invoque un método del objeto flyweight
debe también pasar las partes adecuadas del
estado extrínseco dentro de los parámetros del
método. Por otra parte, el comportamiento se
puede mover a contexto.
Cliente: Calcula o almacena el estado extrínseco
de los objetos Flyweight. Para el cliente un
Flyweight es un objeto plantilla que puede cambiar
durante la ejecución pasando información
contextual de los parámetros de sus métodos.
Flyweight Factory: Gestiona un grupo de
flyweights existentes, los clientes no crean los
objetos directamente. Invocan a la fábrica,
pasandoles partes del estado intrínseco del
Flyweight deseado. Revisa y devuelve existentes
y crea nuevos de ser necesario
1
2
3
4
5
6
ESTRUCTURA -
DEFINICIONES
VENTAJAS
◻ Menos uso de memoria derivado
de la reutilización de objetos ya
existentes que comparten
mismos estados intrínsecos.
DESVENTAJAS
◻ En algunos casos, al mover el
estado afuera del objeto puede
quebrar la encapsulación y puede
ser menos eficiente para
mantener el objeto
completamente intrínseco.
Puede que estés cambiando RAM por
ciclos CPU cuando deba calcularse de
nuevo parte de la información de
contexto cada vez que alguien invoque
un método flyweight.
EJEMPLOS DE
USO
◻ Principalmente cuando no tenemos los
suficientes recursos para generar una gran
cantidad de objetos
◻ Como en este caso que se generan un millón de
arboles en donde crear cada uno de los objetos
que va a requerir una gran cantidad de recursos.
◻ Siendo mejor utilizar el patrón Flyweight para
disminuir el uso de estos recursos.
◻ El patrón Flyweight tiene un único propósito:
minimizar el consumo de memoria. Si tu
programa no tiene problemas de escasez de
RAM, puedes ignorar este patrón por una
temporada.
-Arboles
-Atributos
-Posición X,Y
-Color
-Textura
-Nombre

Más contenido relacionado

Similar a ZabalaOrellanaRael,Flyweight.pptx

Similar a ZabalaOrellanaRael,Flyweight.pptx (20)

6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Patron Singleton
Patron SingletonPatron Singleton
Patron Singleton
 
Abstract Factory
Abstract FactoryAbstract Factory
Abstract Factory
 
Singleton
SingletonSingleton
Singleton
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
POO
POOPOO
POO
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoF
 
Memento
MementoMemento
Memento
 
Android Superstar - Buenas Prácticas
Android Superstar - Buenas PrácticasAndroid Superstar - Buenas Prácticas
Android Superstar - Buenas Prácticas
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
I unidad
I unidadI unidad
I unidad
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
Arquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETArquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NET
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
UDA-Componentes RUP. Jerarquía (v2.1.1 deprecado)
UDA-Componentes RUP. Jerarquía  (v2.1.1 deprecado)UDA-Componentes RUP. Jerarquía  (v2.1.1 deprecado)
UDA-Componentes RUP. Jerarquía (v2.1.1 deprecado)
 
Bienvenido a la republica independiente de las pruebas unitarias con Core Data
Bienvenido a la republica independiente de las pruebas unitarias con Core DataBienvenido a la republica independiente de las pruebas unitarias con Core Data
Bienvenido a la republica independiente de las pruebas unitarias con Core Data
 
Curso de Java Intermedio
Curso de Java IntermedioCurso de Java Intermedio
Curso de Java Intermedio
 
Traduccion capitulo 9 (completo)
Traduccion capitulo 9 (completo)Traduccion capitulo 9 (completo)
Traduccion capitulo 9 (completo)
 
Unidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a ObjetosUnidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a Objetos
 

ZabalaOrellanaRael,Flyweight.pptx

  • 2. FLYWEIGHT ◻ Los programas que aplican este sistema tienen comúnmente un tipo de componente que se repite numerosas veces, y las instancias tienen una serie de carasteristicas en común. En este caso el patrón busca optimizar el tamaño en memoria que ocupan los objetos para sacar el máximo partido al sistema y no desaprovechar los recursos con datos redundantes.
  • 3. ESTRUCTURA ◻ INTRINSECAS ◻ Hacen referencia los estados comunes que tiene el objeto o grupo de objetos a replicar. ◻ El objetivo de este patrón es estudiar las características comunes de los objetos y crear una clase extrínseca. ◻ Luego a la hora de realizar las diferentes instancias, usa la parte común(intrínseca) y la complementa con los datos específicos de la instancia. ◻ EXTRINSECAS ◻ Aluden a las características propias de la instancia.
  • 4. Flyweight: Contiene la parte del estado del objeto original que pueden compartir varios objetos. El mismo objeto Flyweight puede utilizarse en muchos contextos diferentes. Contexto: contiene el estado extrínseco, único en todos los objetos originales. Cuando un contexto se empareja con uno de los objetos flyweight, representa el estado completo del objeto original. Quien invoque un método del objeto flyweight debe también pasar las partes adecuadas del estado extrínseco dentro de los parámetros del método. Por otra parte, el comportamiento se puede mover a contexto. Cliente: Calcula o almacena el estado extrínseco de los objetos Flyweight. Para el cliente un Flyweight es un objeto plantilla que puede cambiar durante la ejecución pasando información contextual de los parámetros de sus métodos. Flyweight Factory: Gestiona un grupo de flyweights existentes, los clientes no crean los objetos directamente. Invocan a la fábrica, pasandoles partes del estado intrínseco del Flyweight deseado. Revisa y devuelve existentes y crea nuevos de ser necesario 1 2 3 4 5 6 ESTRUCTURA - DEFINICIONES
  • 5. VENTAJAS ◻ Menos uso de memoria derivado de la reutilización de objetos ya existentes que comparten mismos estados intrínsecos.
  • 6. DESVENTAJAS ◻ En algunos casos, al mover el estado afuera del objeto puede quebrar la encapsulación y puede ser menos eficiente para mantener el objeto completamente intrínseco. Puede que estés cambiando RAM por ciclos CPU cuando deba calcularse de nuevo parte de la información de contexto cada vez que alguien invoque un método flyweight.
  • 7. EJEMPLOS DE USO ◻ Principalmente cuando no tenemos los suficientes recursos para generar una gran cantidad de objetos ◻ Como en este caso que se generan un millón de arboles en donde crear cada uno de los objetos que va a requerir una gran cantidad de recursos. ◻ Siendo mejor utilizar el patrón Flyweight para disminuir el uso de estos recursos. ◻ El patrón Flyweight tiene un único propósito: minimizar el consumo de memoria. Si tu programa no tiene problemas de escasez de RAM, puedes ignorar este patrón por una temporada. -Arboles -Atributos -Posición X,Y -Color -Textura -Nombre