Lenguajes de Programación Tema 3

Slides:



Advertisements
Presentaciones similares
Daniel Mazzini Ubica Solutions
Advertisements

Curso de java básico (scjp)
Curso de java básico (scjp)
Curso de java básico (scjp)
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
FACHADA COMPOSITOR MEMENTO
Adapter, Bridge, Decorator.
Curso de Java Capitulo 7: Continuación Poo Profesor:
Definición de Clases y Variables de referencia.
Fundamentos de la programación orientada a objetos
Lenguaje de programación Java
Uso de patrones de arquitectura
FACHADA.
Arquitectura CLARO-TECNOTREE
Introducción a la Orientación a Objetos
Patrones de Diseño GEYFFER ALEXANDER ACOSTA CRISTHIAN DOUGLAS CASTRO
Aplicación del paradigma orientado a objetos
Diseño y programación de
Aspectos Avanzados de la Tecnología de Objetos
Programación Orientada a Objetos en Java
Patrones de diseño OO Gang of Four (GoF)
Principios y Patrones de Diseño
4.- Orientación a Objetos Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.
SISTEMAS DE LA INFORMACIÓN
Medio de tele-comunicación
Erick Lanzas Aburto Marco Herrera Venegas Alejandro Monzón Serrano
El patrón de diseño Proxy Raúl Heras Alberto Blasco José Manuel Arévalo.
Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Licenciatura en Ciencias.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.
Patrones de Comportamiento: Patrón de Diseño Observer
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
FACTORY METHOD Edmundo Álvarez Jiménez Antonio Fernández Alonso
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.
Patrones Creacionales
Patrón Decorador Por: Robin Ochoa Falla.
Patrones de diseño DECORATOR Mario Rodríguez Martín
Patrones de Diseño: Command
Juan Manuel Perdigón Mario Felipe Monsalve
3.- Introducción a Patrones de Diseño
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.
Patrones de Diseño Carolina Perozo Julio Padrón Anthony Accardi.
Patrones de diseño Web Pierre Sergei Zuppa Azúa.
1 Diseño de Patrones Agustín J. González ELO329. Generalidades En Electrónica y en la vida en común usar soluciones probadas para problemas similares.
PATRON PROTOTYPE Cristina Merino Héctor Carbajo Alicia Arroyo.
PATRONES DE DISEÑO PROCESO DE CONSTRUCCIÓN DE SOFTWARE 2 GRUPO 2: LOS PATRONES.
Vista de interacción  Una vista de interacción muestra el flujo de control requerido que se establece entre los objetos.
Eva Lleonart Martín Asunción García-Menacho Rovira
SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño
PATRONES DE DISEÑO.
PATRÓN ADAPTER (Adaptador) Elena Moreno Ramírez Laura Sánchez Romero Aroa Solana Ruiz.
Interfaces y Clases Internas ELO329: Diseño y Programación Orientados a Objetos.
Interfaces ELO329: Diseño y Programación Orientados a Objetos.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
1 Interfaces y Clases Internas ELO-329: Diseño y programación orientados a objetos Agustín J. González.
Patrón Iterator Santiago García Sánchez Rebeca Marcos Salcedo Mª Cristina Zapatero Gironda.
1 Interfaces y Clases Internas ELO-329: Diseño y programación orientados a objetos Agustín J. González.
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.
Presentado por: PABLO ANDRES DIAZ SAIN HASSAM CAICEDO
Conceptos Fundamentales
Patrones de diseño equipo n.1
Algoritmos y Programación III
PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS
Patrones de diseño Grupo 1 Haeberli, Julián Lara, Guisell
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Simulación del patrón … (5)
CONCEPTOS.
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
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.
Copyright 1996, Ricardo Devis Botella, Reservados todos los derechos.Página 1 Patrones de Diseño Tecnología de Objetos PATRONES DE DISEÑO por Ricardo Devis.
Transcripción de la presentación:

Pedro García López pgarcia@etse.urv.es/ Lenguajes de Programación Tema 3. Paradigma Orientado a Objetos Patrones de diseño Pedro García López pgarcia@etse.urv.es/

La Biblia Design Patterns. Erich Gamma Richard Helm Ralph Johnson Elements of Reusable Object-Oriented Software Erich Gamma Richard Helm Ralph Johnson John Vlissides Gang of Four (GoF)

Orígenes ... describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice [Alexander] Estructura: Contexto, Problema, Solución

Modelo Vista Controlador (MVC) Utilizado en Smalltalk para construir interfaces Modelo: Estructura de datos o objeto, invisible Vista: Representación en pantalla Controlador: responsable de gestionar entradas del usuario o usuarios, acopla modelos y vistas

MVC

MVC

Patrones GoF

Creational Patterns Abstract Factory Factory Method Builder Prototype Singleton

Ejemplo: Maze

Abstract factory Ofrece una interfaz para crear familias de objetos relacionados sin especificar sus instancias. Ejemplo : Bases de datos.

Abstract Factory

Ejemplo de Bases de datos

Singleton public class Singleton { public static Singleton instancia() { if (unicaInstancia = = null) {unicaInstancia = new Singleton()}; return unicaInstancia }; protected Singleton(); private static Singleton unicaInstancia = null; Ensure a class only has one instance, and provide a global point to access it.

Structural Patterns Describen como se combinan las clases para formar estructuras Los patrones de clase usan la herencia Los patrones de objeto usan la composición de clases

Structural Patterns Adapter Bridge Composite Decorator Facade Flyweight Proxy

Adapter Convierte la interfaz de una clase en otra interfaz que el cliente espera. Adapter permite que clases inicialmente incompatibles puedan interactuar.

Ejemplo de Adapter

Object Adapter El adapter hereda de la interface que el cliente espera (Atarget), mientras que mantiene una instancia del objeto adaptado (Adaptee). Cuando el cliente invoca el método request en el adaptador, la llamada se traduce en la correspondiente llamada en el objeto adaptado.

Class Adapter Como en el object adapter, el class adapter hereda la interface de ATarget. Pero también hereda del objeto adaptado en si. Así, la llamada a request es simplemente enrutada al método de la misma clase.

¿ Es esto un class adapter o un object adapter ?

Composite Compone objetos en estructuras de arbol que representan jerarquías. Composite permite a los clientes tratar objetos individuales y grupos de objetos de manera uniforme. Una hoja tiene la misma interfaz que un nodo.

Ejemplo Composite

Decorator Añade responsabilidades adicionales a un objeto de forma dinámica. Utilizan la herencia para exteder la funcionalidad de un objeto.

Decorator sample

Facade Ofrece una interfaz unificada a un conjunto de interfaces de un sistema. La fachada ofrece una interfaz de alto nivel que permite abstraerse de la complejidad del sistema y lo hace más facild e

Facade sample

Proxy Ofrece un sustituto o representante de otro objeto para controlar su acceso o mejorar la interacción.

Proxy example Remote proxy Virtual proxy Security proxy Smart reference

Behavioural patterns Se encargan de crear algoritmos que establecen el comportamiento o llamadas relacionadas entre un grupo de objetos. No solo describen la estructura sino la información o comunicación que fluye entre objetos. Permite concentrarse en las formas de interconexión entre objetos.

Observer Define una relación uno-a-muchos entre objetos, de forma que cuando un objeto cambia su estado, todos los objetos interesados son notificados y actualizados automáticamente. Relacionado con el MVC

Observer example

Interfaces gráficas en Java java.awt.event.ActionListener void actionPerformed(ActionEvent e) java.awt.Button  void addActionListener(ActionListener l) Pensad un momento a qué equivale la interfaz ActionListener en el patrón Observer.

Creando nuestros propios eventos

Interfaz Listener Propia

Iterator Ofrece una forma de acceder elementos de un objeto agregado de forma secuencial sin exponer la representación interna del objeto.

Template method Define el esqueleto de un algoritmo, dejando abstractas o por definir operaciones a las clases cliente. Template method permite a las subclases redefinir ciertos pasos de un algoritmo sin cambiar la estructura del mismo.

Conclusiones Los patrones de diseño los utilizan todos los ingenieros en programación orientada a objetos. Son recetas que podemos utilizar y que nos ayudarán a entender mejor la orientación a objetos, la herencia y el polimorfismo.