Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

19
Diseño de Sistemas. Diseño de Sistemas. Patrones de Diseño. Patrones de Diseño. Geronimo Manso. Geronimo Manso.

Transcript of Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Page 1: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Diseño de Sistemas.Diseño de Sistemas.Patrones de Diseño.Patrones de Diseño. Geronimo Manso.Geronimo Manso.

Page 2: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Temas a Tratar:Temas a Tratar:

Patrones de Diseño.Patrones de Diseño. Que es?Que es? Para que se utilizan.Para que se utilizan. Tipos.Tipos.

Patrón Adaptado.Patrón Adaptado. Objetivo.Objetivo. Aplicabilidad.Aplicabilidad. Como esta compuesto?Como esta compuesto? Formas de Implementación. Formas de Implementación.

Ejemplo de aplicación.Ejemplo de aplicación.Geronimo Manso.Geronimo Manso.

Page 3: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Siguiente tema:Siguiente tema:

Patrones de Diseño. Que es? Para que se utilizan. Tipos.

Patrón Adaptado.Patrón Adaptado. Objetivo.Objetivo. Aplicabilidad.Aplicabilidad. Como esta compuesto?Como esta compuesto? Formas de Implementación. Formas de Implementación.

Ejemplo de aplicación.Ejemplo de aplicación.Geronimo Manso.Geronimo Manso.

Page 4: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Patrones de DiseñoPatrones de Diseño

Un patrón de diseño es un conjunto de reglas que describen como afrontar tareas

y solucionar problemas que surgen durante el desarrollo de software.

¿Qué es?¿Qué es?

Geronimo Manso.Geronimo Manso.

Page 5: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Como ya se mencionó, se utilizan para solucionar problemas que surgen en el desarrollo de software, a partir de una serie de procedimientos que fueron definidos en base a la experiencia en casos similares.

Para qué se utilizan?Para qué se utilizan?

Patrones de DiseñoPatrones de Diseño

Geronimo Manso.Geronimo Manso.

Page 6: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Patrones de DiseñoPatrones de Diseño

Patrones de Creación.Patrones de Creación.

Patrones estructurales.Patrones estructurales.

Patrones de Comportamiento.Patrones de Comportamiento.

TiposTipos

Geronimo Manso.Geronimo Manso.

Page 7: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Patrones de DiseñoPatrones de Diseño

Patrones de creaciónPatrones de creación

Estos patrones crearán objetos para nosotros de manera que ya no los tendremos que instanciar directamente, proporcionando a nuestros programas una mayor flexibilidad para decidir que objetos usar.

Ejemplos:Ejemplos:

Factory, Abstract Factory, Builder, Prototype y Singleton.Geronimo Manso.Geronimo Manso.

Page 8: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Patrones de DiseñoPatrones de Diseño

Patrones estructuralesPatrones estructurales

Nos permiten crear grupos de objetos para ayudarnos a realizar tareas complejas.También hay patrones estructurales que se encargan de las relaciones entre clases, mientras que otros se encargan de los objetos.

Ejemplos:Ejemplos:Adapter, Bridge, Composite, Decorator, FaÇade, Flyweight y Proxy. Geronimo Manso.Geronimo Manso.

Page 9: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Patrones de DiseñoPatrones de Diseño

Patrones de ComportamientoPatrones de Comportamiento

Nos permiten definir la comunicación entrelos objetos de nuestro sistema y el flujo de la información entre los mismos.

Ejemplos:Ejemplos:Chain, Observer, Mediator, Template, Interpreter, Strategy, Visitor, State, Command e Iterator. Geronimo Manso.Geronimo Manso.

Page 10: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Siguiente tema:Siguiente tema:

Patrones de Diseño.Patrones de Diseño. Que es?Que es? Para que se utilizan.Para que se utilizan. Tipos.Tipos.

Patrón Adaptado. Objetivo. Aplicabilidad. Como esta compuesto? Formas de Implementación.

Ejemplo de aplicación.Ejemplo de aplicación.Geronimo Manso.Geronimo Manso.

Page 11: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Patrón Adaptado.Patrón Adaptado.

Objetivo.Objetivo.

Una clase Adapter implementa un interfaz que conoce a sus clientes y proporciona acceso auna instancia de una clase que no conoce a sus clientes, es decir convierte la interfaz de unaclase en una interfaz que el cliente espera.

Geronimo Manso.Geronimo Manso.

Page 12: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Patrón Adaptado.Patrón Adaptado.

Aplicabilidad.Aplicabilidad.

Quieres utilizar una clase que llame a un método a través de una interface, pero quieres utilizarlo con una clase que no implementa ese interface. Modificar esa clase que implementa el interface NO es una opción por un par de razones:

1. No tienes el código fuente de la clase.2. La clase es una clase de propósito general, y es inapropiado

para ella implementar un interface para un propósito específico.

Page 13: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Patrón Adaptado.Patrón Adaptado.

¿Cómo esta compuesto?¿Cómo esta compuesto?

+metodo()

«interfaz»IFTarget

+metodo()

Adapter

Cliente

+otroMetodo()

Adaptee

1..* 1

1 1

utiliza

utiliza

Geronimo Manso.Geronimo Manso.

Page 14: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Patrón Adaptado.Patrón Adaptado.

Mediante Herencia:Mediante Herencia: Mediante Herencia:Mediante Herencia: Mediante ComposiciónMediante Composición

Formas de implementación.Formas de implementación.

Se crea una nueva clase que heredará de la que queremos adaptar y aesta nueva clase le añadiremos los métodos necesarios para que su interfaz de programaciónse corresponda con la que queremos utilizar.

Se incluye la clase original dentro de la nueva y crearemos los métodos de manera queaccedan a la clase que hemos añadido como atributo.

Page 15: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Siguiente tema:Siguiente tema:

Patrones de Diseño.Patrones de Diseño. Que es?Que es? Para que se utilizan.Para que se utilizan. Tipos.Tipos.

Patrón Adaptado.Patrón Adaptado. Objetivo.Objetivo. Aplicabilidad.Aplicabilidad. Como esta compuesto?Como esta compuesto? Formas de Implementación. Formas de Implementación.

Ejemplo de aplicación.Geronimo Manso.Geronimo Manso.

Page 16: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Ejemplo de aplicación.Ejemplo de aplicación.

En el modelo que implementé una de las clases con la que contaba es la siguiente:

+Empleado()+getDni() : Integer+getNombre() : String+setDni(entrada dni : Integer)+setNombre(entrada nombre : String)

#dni : Integer#nombre : String

Empleado public class Empleado{

protected Integer dni;

protected String nombre;

. . .

public Usuario (Integer dni, String nombre)

{

. . .

}

public Integer getDni ()

{

return dni;

}

public String getNombre ()

{

return nombre;

}

. . .

}

Page 17: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Ejemplo de aplicación.Ejemplo de aplicación.Ahora supongamos que en nuestro grupo de trabajo, por cuestiones de comodidad cambiamos el criterio de cómo obtener los valores de los atributos y queremos que los metodos getDni() y getNombre(), pasen a ser obtenerDni() y obtenerNombre().

Una forma de aplicar el patrón adaptado seria la siguiente:

public class EspEmpleado extends Empleado implements IFEspEmpleado {

public EspEmpleado (Integer dni, String nombre)

{

super (dni, nombre);

}

public Integer obtenerDni ()

{

return getDni();

}

public String obtenerNmbre ()

{

return getNombre();

}

}

Geronimo Manso.Geronimo Manso.

+Empleado()+getDni() : Integer+getNombre() : String+setDni(entrada dni : Integer)+setNombre(entrada nombre : String)

#dni : Integer#nombre : String

Empleado

+obtenerDni() : Integer+obtenerNombre() : String

«interfaz»IFEspEmpleado

+obtenerDni() : Integer+obtenerNombre() : String

EspEmpleado

Cliente 1..* 1utiliza

Page 18: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Ejemplo de aplicación.Ejemplo de aplicación.

De esta forma conseguimos lo siguiente:De esta forma conseguimos lo siguiente:

Que los métodos: Puedan ser accedidos como:

getDni();

getNombre();

obtenerDni();

obtenerNombre();

Además:Además:

El hecho de haberlo implementado así, aprovechamos las ventajas de la herencia, que hace que las otras clases que usen Empleado, sigan funcionando sin retocarlas.

Geronimo Manso.Geronimo Manso.

Page 19: Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

Diseño de sistemas.Diseño de sistemas.

FINFIN

Geronimo Manso.Geronimo Manso.