patronesdediseo 160927143256 (1)

19
PATRONES DE DISEÑO

Upload: ale-abad-aguilar

Post on 13-Apr-2017

26 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Patronesdediseo 160927143256 (1)

PATRONES DE DISEÑO

Page 2: Patronesdediseo 160927143256 (1)

Conceptos:

Patrón de Diseño “Los patrones de diseño son el esqueleto de las soluciones a problemas

comunes en el desarrollo de software.”

Christopher Alexander ((Arquitecto/Urbanista)(1977):..Cada patrón describe un problema que ocurre una y otra vez en

nuestro entorno, y describe la esencia de la solución a ese problema, de tal modo que pueda utilizarse esta solución un

millón de veces más, sin siquiera hacerlo de la misma manera dos veces”

Page 3: Patronesdediseo 160927143256 (1)

Un patrón es: Una solución a un problema en un contexto particular Recurrente (lo que hace la solución relevante a otras situaciones) Enseña (permite entender cómo adaptarlo a la variante particular del

problema donde se quiere aplicar) Tiene un nombre para referirse al patrón

Para que una solución sea tomada como un patrón debe cumplir al menos estos dos requisitos: Efectivo! Reutilizable!

Page 4: Patronesdediseo 160927143256 (1)

Los PATRONES DE DISEÑO pretenden.. No pretenden..

• Evitar la reiteración en la búsqueda de soluciones a problemas ya conocidos y solucionados anteriormente.

• Estandarizar el modo en que se realiza el diseño.

• Ayudar a la comprensión de un sistema rápidamente cuando está documentado con los patrones que se usaron.

• Formalizar un vocabulario común entre diseñadores. Lenguajes de patrones

• Imponer ciertas alternativas de diseño frente a otras

----------------------------------------

• No es obligatorio utilizar los patrones.

• Abusar o forzar el uso de los patrones puede ser un error.ANTIPATRÓ

N

Page 5: Patronesdediseo 160927143256 (1)

Estructura de un patrón:Nombre del patrón. Describe el problema de diseño. Problema. Describe cuándo aplicar el patrón. Explica el problema y su contexto.Solución. Elementos que forman el diseño,

relaciones, responsabilidades. No un diseño concreto, sino una

plantilla que puede aplicarse en

muchas situaciones distintas.

Consecuencias. Resultados, ventajas e

inconvenientes de aplicar el patrón. P.ej.: relación entre eficiencia en

espacio y tiempo; cuestiones de implementación etc.

Page 6: Patronesdediseo 160927143256 (1)

Clasificación de los patrones:

Creación Estructura Comportamiento

Page 7: Patronesdediseo 160927143256 (1)
Page 8: Patronesdediseo 160927143256 (1)

Además, Patrones de Diseño Fundamentales..

DELEGATIONCuando se quiere extender y reutilizar la funcionalidad de una clase sin utilizar HERENCIA.Ventajas: En vez de herencia múltiple Cuando una clase que hereda de otra quiere ocultar

algunos de los métodos heredados Compartir código que no se puede heredar

Page 9: Patronesdediseo 160927143256 (1)

EJ: PATRÓN DELEGATION

PROBLEMA

• El lenguaje utilizado NO PERMITE HERENCIA MÚLTIPLE

• La clase C no desea TODOS los métodos de B

Page 10: Patronesdediseo 160927143256 (1)

EJ: PATRÓN DELEGATION

SOLUCION

• No se utiliza la herencia sino que se hace uso de la

relación “usa”

Page 11: Patronesdediseo 160927143256 (1)

EJ: PATRÓN DELEGATION

IMPLEMENTACION

class C extends A {B objB;C ( ) { // En el constructor se puede crear

obj. de B objB=new B();

}void b1( ) { objB.b1( );}….

Page 12: Patronesdediseo 160927143256 (1)

Además, Patrones de Diseño Fundamentales.. INTERFACEDefinir un comportamiento independiente de donde vaya a ser utilizado MARKER INTERFACESirve para indicar atributos semánticos de una clase.Ventajas: Se puede preguntar si un objeto pertenece a una clase de un

determinado tipo o no. Se utiliza en clases de utilidades que tienen que determinar algo

sobre objetos sin asumir que son instancias de una determinada clase o no.

Page 13: Patronesdediseo 160927143256 (1)

PatrÓN SINGLETONAsegurar que una clase tenga una sola instancia y proporcionar un punto de acceso global a ella

Es importante asegurar que una clase tenga una sola instancia, por ejemplo: Un gestor de ventanas Una única cola de impresión Un único sistema de ficheros

¿Cómo asegurarlo? una variable global hace el objeto accesible, pero se puede instanciar varias veces.Responsabilidad de la clase misma: actuar sobre el mensaje de creación de instancias

Page 14: Patronesdediseo 160927143256 (1)

PatrÓN Factory MethodDefine una interfaz para crear un objeto, pero deja que

sean las subclases quienes decidan qué clase instanciar. PatrÓN PROXY

Proporcionar un representante de otro objeto para controlar el acceso a este. PatrÓN ADAPTER

Permite trabajar juntas a clases con interfaces diferentes a través de la creación de un objeto común mediante el que puedan comunicarse e interactuar.

Page 15: Patronesdediseo 160927143256 (1)

PatrÓN COMPOSITEFacilita la creación de jerarquías de objetos donde cada

objeto se puede tratar de forma independiente o como un conjunto de objetos anidados a través de la misma interfaz. PatrÓN FACADE

Proporciona una interfaz unificada para un conjunto de interfaces de un subsistema. Define una interfaz de alto nivel que hace que el subsistema sea más fácil de usar.

PatrÓN CHAIN OP RESPONSABILITY Evita acoplar el emisor de una petición a su receptor

dando a más de un objeto la posibilidad de responder a una petición

Page 16: Patronesdediseo 160927143256 (1)

PatrÓN ITERATORDefine una interfaz que declara los métodos necesarios para acceder secuencialmente a un grupo de objetos de una colección.Algunos de los métodos comunes que se definen en la interfaz Iterador son: • Primero() • Siguiente() • HayMas()• ElementoActual()

PatrÓN MEDIATOR Define un objeto que encapsula la manera en que interactúan un conjunto de objetos entre ellos.

Page 17: Patronesdediseo 160927143256 (1)

PatrÓN MEMENTO Su finalidad es almacenar el estado de un objeto (o del sistema completo) en un momento dado de manera que se pueda restaurar en ese punto de manera sencilla.

PatrÓN Observer Define una dependencia del tipo uno-a-muchos entre objetos, de manera que cuando uno de los objetos cambia su estado, notifica este cambio a todos los dependientes.

PatrÓN STATESe utiliza cuando el comportamiento de un objeto cambia dependiendo del estado del mismo.

Page 18: Patronesdediseo 160927143256 (1)

CONCLUSIONES

Son soluciones bien pensadas a problemas conocidos.

Page 19: Patronesdediseo 160927143256 (1)

GRACIAS..