Patrón Decorador Por: Robin Ochoa Falla.

Slides:



Advertisements
Presentaciones similares
Observador (observer) Visita (Visitor) Singleton
Advertisements

FACHADA COMPOSITOR MEMENTO
Adapter, Bridge, Decorator.
POLIMORFISMO UNIDAD 4.
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
UML 1.4 Peter Emerson Pinchao Solis.
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Arquitectura CLARO-TECNOTREE
REFERENCIA AL OBJETO DE LA CLASE BASE
Patrones de Diseño GEYFFER ALEXANDER ACOSTA CRISTHIAN DOUGLAS CASTRO
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
"java del lado del servidor" Servlet y JSP Java Server Pages.
Patrón Composite   Tipo: Estructural, objeto Nivel: Componente
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
DESCRIPCION DEL PROBLEMA
Introducción a Flash Basado en los cursos de Flash de SINFOGEO (
Patrones de diseño OO Gang of Four (GoF)
Diagramas de clases Modelan la vista estática del sistema
HERENCIA.
Abstracción de los datos y Orientación a Objeto Clase 13.
Ing. CIP Fabián Silva Alvarado
El patrón de diseño Proxy Raúl Heras Alberto Blasco José Manuel Arévalo.
FACTORY METHOD Edmundo Álvarez Jiménez Antonio Fernández Alonso
Sistema de Administración de Contenidos CMS Administración de Sitios.
Programación Orientada a Aspectos (POA)
Patrones Creacionales
ANDRES FELIPE BORRERO SALAZAR COD ALEXANDRA CARREÑO SALAS COD LUCIO ANIBAL CRIOLLO COD ALEJANDRO RUIZ IDROBO COD
Fundamentos de programación
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Programación orientada a objetos
Lenguajes de Programación Tema 3
Presentado por Alfredo de la Mora Díaz Catedrático Dr. Jesús Favela
Patrones de diseño DECORATOR Mario Rodríguez Martín
Realizado por: Manuel González Joaquín Windmuller José Lorenzo Rodríguez
INGENIERIA DE SOFTWARE
Son la base para la búsqueda de soluciones o problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
INGENIERIA DE SOFTWARE GUILLERMO OCHOA GAVIRIA Octubre 2006 Factory Method.
Patrones de Diseño Carolina Perozo Julio Padrón Anthony Accardi.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Vista de interacción  Una vista de interacción muestra el flujo de control requerido que se establece entre los objetos.
PATRONES DE DISEÑO.
PATRÓN ADAPTER (Adaptador) Elena Moreno Ramírez Laura Sánchez Romero Aroa Solana Ruiz.
Diagrama de Clases ACI 570.
Programación de Interfaces Gráficas en Java
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
PROGRAMACION OOP Ing. Miguel Jaime IBM ACE Certificación.
Facultad de Ingeniería
Introducción a la Programación Orientada a Objetos (POO)
Programación de Interfaces Gráficas en Java
Introducción a UML Ing. José Manuel Poveda.
Patrones de diseño equipo n.1
Elaboración de algoritmos usando lógica de programación
Google Talk y Google Docs
DIAGRAMA DE CLASES.
Unidad 3 MODELO DE ANALISIS.
Modelan la vista estática del sistema Elementos básicos: Clases Relaciones Objeto: Representación de una entidad discreta (real o abstracta) - Estado:
Conceptos. -Programación orientada a eventos. -Instancias de clase. -Atributo de los objetos. -Método main, get y set. -Ejemplo de la declaración de.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
Hilos Java Profesor Elian Rojas Berrocal
Patrón de Diseño Brigde ( Handle/Body) Calderón Márquez Jorge Alberto Posgrado de Ciencia e Ingeniería en Computación. Tecnología Orientada a Objetos.
Conveniencia entre compra o desarrollo a medida SOFTWARE A MEDIDA VENTAJASDESVENTAJAS. 1. Se ha diseñado específicamente para las necesidades empresariales.
II QUIMESTRE 2DO PARCIAL. GRAPH  Graph es una herramienta que permite dibujar una función o cualquier tipo de representación matemática sobre un sistema.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLEMENTACIÓN DE COMPONENTES.
Diagrama de Clases.
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Modelado UML Diagrama de Clases
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Estructura de Datos Departamento de Programación Universidad Metropolitana Contenido: UML. Envío de mensajes. Relaciones. Asociación. Agregación o composición.
Transcripción de la presentación:

Patrón Decorador Por: Robin Ochoa Falla

Objetivos Agregar responsabilidades menores a una clase. Añadir responsabilidades a un objeto concreto de forma dinámica, cuando sea imposible la extensión de funcionalidad por herencia, por ser ésta imprevisible en tipo y número

Ejemplo Interfaz Gráfica Un usuario de herramientas gráficas, por ejemplo, debería añadir propiedades como bordes, scroll bar, a cualquier componente de interfaz.

Primera Solución Interfaz Gráfica Herencia Añadir responsabilidades es con herencia, heredando un borde de otra clase inserta borde a toda subclase instanciada.

Primera Solución Interfaz Gráfica

Problemas Primera solución No es flexible, pues la elección del borde se hace estáticamente, por lo que el cliente no puede controlar como y cuando decorar el componente con un borde. Si se quiere un componente con borde y deslizadores (por ejemplo) requeriría herencia múltiple además de prever todas las combinaciones factibles lo cual traería explosión combinatoria de clases.

Solución Patrón Decorador Encerrar el componente en otro objeto que añade el borde. El objeto que encierra es llamado decorador. El decorador conforma  la interfaz del componente, éste decora de manera que su presencia sea transparente a los usuarios de los componentes.

Solución Decorador

Diagrama de Clases Patrón decorador Interfaz Gráfica

Funciona Se hace primero la ventana Se van agregando los decoradores o adornos. La ventaja más inmediata que nos proporciona este patrón es que permite mezclar cualquier  conjunto de decoradores como sea necesario y el cliente lo prefiera.

Diagrama de Clases Patrón Decorador

PARTES Componente: Define la interfaz para objetos que pueden tener responsabilidades añadidas a ellos dinámicamente. Componente concreto: Define un objeto al que pueden ser agregadas responsabilidades adicionales. Decorador: Mantiene una referencia a un objeto componente y define una interfaz que conforma la interfaz del componente. Decorador Concreto: Añade responsabilidades al componente.

Ejemplo(1) JAVA El componente gráfico es un modesto editor de texto: JEditorPane panel_text = new JEditorPane(); Es muy sencillo añadir la funcionalidad del scroll sin usar herencia: JScrollPane scroll_text = new JScrollPane( panel_text ); El último paso es añadir el decorador (y por añadidura el editor) al contenedor raíz del applet: cont_global.add( scroll_text ); En nuestro ejemplo JEditorPane y JScrollPane heredan de JComponent.

Ejemplo (2)

Ejemplo (3)

Ventajas Amplia la funcionalidad de una interfaz al tiempo que la mantiene igual y se hace dinámicamente. No altera la funcionalidad existente, solo añade más funciones. Las responsabilidades se pueden añadir o quitar.

Desventajas Provoca la creación de muchos objetos pequeños encadenados lo que puede llegar a complicar la depuración. La flexibilidad que provee puede dar problemas, pues da la oportunidad para colocarle muchos deslizadores  y varios   rebordes (por ejemplo), lo que traería como consecuencia que el componente sea poco practico y de baja calidad. Las responsabilidades pueden ser ejecutadas a tiempo de ejecución. Puede conducir a la proliferación de clases pequeñas. En algunas ocasiones se puede omitir la clase decorador, en tal caso el diagrama quedaría de la siguiente  manera:

Bibliografía Patrones Estrategía y Decorador (http://www.ldc.usb.ve/~teruel/ci3711/patron2/index.html) Gamma Erick, Helm Richard, Johnson Ralph, Vlissides John. Design Patterns                Addison-Wesley publishing Company. United States of America. 1995.          -  Grand Mark.   Patterns in Java Volume 1.                Wiley Computer publishing. United States of America. 1998.