Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Patr
on Estructural
Prop
osito
A
nadir responsabilidades a un objeto din
amicamente,
proporcionando una alternativa flexible a la extensi
on de una clase
Motivaci
on
Deseo de a
nadir responsabilidades a objetos individuales, no a una clase
Ejemplo: Interfaz gr
afica que permite a
nadir bordes o barras de desplazamiento a cualquier componente
Soluci
on: Utilizar herencia para extender las responsabilidades de la clase
Problema: Inflexible! (est
atico)
Soluci
on: Encapsular dentro de otro objeto que
a
nade las nuevas responsabilidades (decorador )
Motivaci
on (cont.)
A
nadir responsabilidades a objetos de manera
din
amica y transparente
Para suprimir responsabilidades de los objetos
Cuando no es pr
actico el uso de la herencia
2
Estructura
Participantes
Componente (Component)
Define la interfaz para los objetos que pueden tener responsabilidades a
nadidas
Decorador (Decorator)
Mantiene referencia al componente asociado
Implementa la interfaz de la superclase Componente delegando en el componente asociado
Colaboraciones
M
as flexible que la herencia
Configurable en tiempo de ejecuci
on
Evita herencia m
ultiple
Evita la aparici
on de clases con muchas responsabilidades en las clases superiores de la jerarqua
Incorporaci
on incremental de responsabilidades
No es necesario pagar por funciones no requeridas