Ghkg

Solo disponible en BuenasTareas
  • Páginas : 4 (756 palabras )
  • Descarga(s) : 4
  • Publicado : 13 de abril de 2010
Leer documento completo
Vista previa del texto
Ingeniería del Software de Gestión 1 Ingeniería Técnica en Informática de Gestión

ACTIVIDAD PRÁCTICA Y DE DESARROLLO APD-5: Patrones Adaptador (Adapter) y Decorador (Decorator)
Objetivos •Aplicación del patrón Decorador y Adaptador en la resolución de problemas.

Conceptos El patrón Adaptador o Wrapper convierte la interfaz de una clase en la interfaz que el cliente espera. De esta formase permite permite que clases con interfaces incompatibles puedan trabajar juntas. Este patrón se aplica fundamentalmente en los siguientes supuestos: - Se desea utilizar una clase ya existente perocuya interfaz no coincide con la que se necesita. - Se desea crear una clase que colabora con otras clases que no tienen interfaces compatibles. - Se desea adaptar varias subclases ya existentesadaptando la interfaz de su clase padre común (object adapter).

El patrón Decorador responde a la necesidad de añadir dinámicamente funcionalidad a un Objeto. Esto nos permite no tener que crear sucesivasclases que hereden de la primera incorporando la nueva funcionalidad, sino otras que la implementan y se asocian a la primera. Supongamos que tenemos una clase existente Ventana y queremos añadirlefuncionalidad para que muestre un borde alrededor. Podemos crear una subclase VentanaConBorde que herede de Ventana. Hasta aquí todo bien, pero supongamos que surge la necesidad de crear una ventanaque muestre un pequeño botón de ayuda con un signo de interrogación (?) en su parte superior. Entonces tenemos las siguientes opciones:

Ingeniería del Software de Gestión 1

1

APD-5: PatrónAdaptador y Decorador

• • •

Crear otra subclase de Ventana: VentanaConBotónDeAyuda  Problema: No cubre la necesidad de tener ventanas con bordes y botón de ayuda a la vez. Crear una subclase deVentanaConBorde: VentanaConBordeYBotonDeAyuda  Problema: No tenemos una ventana con botón de ayuda y sin borde. Crear clases para todas las combinaciones posibles de funcionalidades  Problema: Con...
tracking img