Diseo de Sistemas Patrones de Diseo Geronimo Manso

  • Slides: 19
Download presentation
Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.

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

Temas a Tratar: n Patrones de Diseño. n Que es? n Para que se

Temas a Tratar: n Patrones de Diseño. n Que es? n Para que se utilizan. n Tipos. n Patrón Adaptado. n Objetivo. n Aplicabilidad. n Como esta compuesto? n Formas de Implementación. n Ejemplo de aplicación. Geronimo Manso.

Siguiente tema: n Patrones de Diseño. Que es? n Para que se utilizan. n

Siguiente tema: n Patrones de Diseño. Que es? n Para que se utilizan. n Tipos. n n Patrón Adaptado. n Objetivo. n Aplicabilidad. n Como esta compuesto? n Formas de Implementación. n Ejemplo de aplicación. Geronimo Manso.

Patrones de Diseño ¿Qué es? Un patrón de diseño es un conjunto de reglas

Patrones de Diseño ¿Qué es? 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. Geronimo Manso.

Patrones de Diseño Para qué se utilizan? Como ya se mencionó, se utilizan para

Patrones de Diseño Para qué se utilizan? 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. Geronimo Manso.

Patrones de Diseño Tipos n Patrones de Creación. n Patrones estructurales. n Patrones de

Patrones de Diseño Tipos n Patrones de Creación. n Patrones estructurales. n Patrones de Comportamiento. Geronimo Manso.

Patrones de Diseño Patrones de creación Estos patrones crearán objetos para nosotros de manera

Patrones de Diseño Patrones 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: Factory, Abstract Factory, Builder, Prototype y Singleton. Geronimo Manso.

Patrones de Diseño Patrones estructurales Nos permiten crear grupos de objetos para ayudarnos a

Patrones de Diseño Patrones 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: Adapter, Bridge, Composite, Decorator, FaÇade, Flyweight y Proxy. Geronimo Manso.

Patrones de Diseño Patrones de Comportamiento Nos permiten definir la comunicación entre los objetos

Patrones de Diseño Patrones de Comportamiento Nos permiten definir la comunicación entre los objetos de nuestro sistema y el flujo de la información entre los mismos. Ejemplos: Chain, Observer, Mediator, Template, Interpreter, Strategy, Visitor, State, Command e Iterator. Geronimo Manso.

Siguiente tema: n Patrones de Diseño. n Que n n es? n Para que

Siguiente tema: n Patrones de Diseño. n Que n n es? n Para que se utilizan. n Tipos. Patrón Adaptado. n Objetivo. n Aplicabilidad. n Como esta compuesto? n Formas de Implementación. Ejemplo de aplicación. Geronimo Manso.

Patrón Adaptado. Objetivo. Una clase Adapter implementa un interfaz que conoce a sus clientes

Patrón Adaptado. Objetivo. Una clase Adapter implementa un interfaz que conoce a sus clientes y proporciona acceso a una instancia de una clase que no conoce a sus clientes, es decir convierte la interfaz de una clase en una interfaz que el cliente espera. Geronimo Manso.

Patrón Adaptado. Aplicabilidad. Quieres utilizar una clase que llame a un método a través

Patrón Adaptado. 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.

Patrón Adaptado. ¿Cómo esta compuesto? Geronimo Manso.

Patrón Adaptado. ¿Cómo esta compuesto? Geronimo Manso.

Patrón Adaptado. Formas de implementación. n Mediante Herencia: Se crea una nueva clase que

Patrón Adaptado. Formas de implementación. n Mediante Herencia: Se crea una nueva clase que heredará de la queremos adaptar y a esta nueva clase le añadiremos los métodos necesarios para que su interfaz de programación se corresponda con la queremos utilizar. n Mediante Composición Se incluye la clase original dentro de la nueva y crearemos los métodos de manera que accedan a la clase que hemos añadido como atributo.

Siguiente tema: n Patrones de Diseño. n Que es? n Para que se utilizan.

Siguiente tema: n Patrones de Diseño. n Que es? n Para que se utilizan. n Tipos. n Patrón Adaptado. n Objetivo. n Aplicabilidad. n Como n esta compuesto? n Formas de Implementación. Ejemplo de aplicación. Geronimo Manso.

Ejemplo de aplicación. En el modelo que implementé una de las clases con la

Ejemplo de aplicación. En el modelo que implementé una de las clases con la que contaba es la siguiente: public class Empleado{ protected Integer dni; protected String nombre; . . . public Usuario (Integer dni, String nombre) {. . . } public Integer get. Dni () { return dni; } public String get. Nombre () { return nombre; }. . . }

Ejemplo de aplicación. Ahora supongamos que en nuestro grupo de trabajo, por cuestiones de

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 get. Dni() y get. Nombre(), pasen a ser obtener. Dni() y obtener. Nombre(). Una forma de aplicar el patrón adaptado seria la siguiente: public class Esp. Empleado extends Empleado implements IFEsp. Empleado { public Esp. Empleado (Integer dni, String nombre) { super (dni, nombre); } public Integer obtener. Dni () { return get. Dni(); } public String obtener. Nmbre () { return get. Nombre(); } } Geronimo Manso.

Ejemplo de aplicación. De esta forma conseguimos lo siguiente: Que los métodos: get. Dni();

Ejemplo de aplicación. De esta forma conseguimos lo siguiente: Que los métodos: get. Dni(); get. Nombre(); Puedan ser accedidos como: obtener. Dni(); obtener. Nombre(); 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.

Diseño de sistemas. FIN Geronimo Manso.

Diseño de sistemas. FIN Geronimo Manso.