Introduccion:
usa el compartimiento para permitir un gran numero de objetos de grano fino de forma eficiente.
Nombre del Patron:
Flyweight (Peso Ligero).
Clasificacion del Patron:
Estructural.
Intencion:
Reducir el numero de objetos detallados de muy bajo nivel en un sistema mediante la comparticion de objetos.
Motivacion:
usa el compartimiento para permitir un gran numero de objetos de grano fino de forma eficiente.
Nombre del Patron:
Flyweight (Peso Ligero).
Clasificacion del Patron:
Estructural.
Intencion:
Reducir el numero de objetos detallados de muy bajo nivel en un sistema mediante la comparticion de objetos.
Motivacion:
- Los caracteres de un procesador de palabras podrian ser objetos.
- La cantidad de caracteres en un documento puede ser muy grande.
- Cada caracter es compartido por los objetos que lo contienen.
Estructura:
Participantes:
Flyweight: Declara una interfaz a traves de la cual los flyweights pueden recibir y actuar sobre estados no compartidos.
ConcreteFlyweight: Implementa la interfaz Flyweight y almacena los estados compartidos, si los hay. Un objeto ConcreteFlyweight debe ser compartible. Cualquier estado que almacene debe ser intrinseco; es decir, debe ser independiente de su contexto.
UnsharedConcreteFlyweight: No todas las subclases de Flyweight tienen por que ser compartidas. La interfaz Flyweight permite que se comparta; no lo fuerza. Es comun que los objetos de esta clase tengan hijos de la clase ConcreteFlyweight en algun nivel de su estructura.
FlyweightFactory: Crea y gestiona a los objetos flyweight. Garantiza que los objetos flyweight se compartan de forma apropiada. Cuando un cliente solicita un flyweight, el objeto de la clase FlyweightFactory proporciona una instancia existente, o crea una.
Client: Contiene referencias a los flyweights. Calcula o almacena los estados no compartidos de los flyweights.
Participantes:
Flyweight: Declara una interfaz a traves de la cual los flyweights pueden recibir y actuar sobre estados no compartidos.
ConcreteFlyweight: Implementa la interfaz Flyweight y almacena los estados compartidos, si los hay. Un objeto ConcreteFlyweight debe ser compartible. Cualquier estado que almacene debe ser intrinseco; es decir, debe ser independiente de su contexto.
UnsharedConcreteFlyweight: No todas las subclases de Flyweight tienen por que ser compartidas. La interfaz Flyweight permite que se comparta; no lo fuerza. Es comun que los objetos de esta clase tengan hijos de la clase ConcreteFlyweight en algun nivel de su estructura.
FlyweightFactory: Crea y gestiona a los objetos flyweight. Garantiza que los objetos flyweight se compartan de forma apropiada. Cuando un cliente solicita un flyweight, el objeto de la clase FlyweightFactory proporciona una instancia existente, o crea una.
Client: Contiene referencias a los flyweights. Calcula o almacena los estados no compartidos de los flyweights.
No hay comentarios:
Publicar un comentario