0% encontró este documento útil (0 votos)
14 vistas17 páginas

TemaIX PatronesDiseño

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 17

Programación

Orientada a Objetos
TEMA IX. PATRONES DE DISEÑO

Objetivo:

El alumno aplicará los patrones de diseño


adecuados para la resolución de
problemas de ingeniería.
Descripción de un Patrón

Un patrón describe un problema que ocurre una


y otra vez en nuestro entorno y describe
también el núcleo de la solución al problema, de
forma que puede utilizarse un millón de veces
sin tener que hacer dos veces lo mismo.

Ing. Jorge Hernández


Descripción de un patrón de diseño

Un patrón de diseño es una descripción de


clases y objetos comunicándose entre sí
adaptada para resolver un problema de diseño
general en un contexto particular.

Ing. Jorge Hernández


Introducción

Es un tema importante en el desarrollo de


software actual: permite capturar la experiencia

Busca ayudar a la comunidad de desarrolladores


de software a resolver problemas comunes,
creando un cuerpo literario de base

El uso de patrones ayuda a obtener un software


de calidad (reutilización y extensibilidad)

Ing. Jorge Hernández


Elementos de un patrón
• Nombre: describe el problema de diseño.

• El problema: describe la naturaleza del evento


y cuándo aplicar el patrón.

• La solución: describe los elementos que


componen el diseño, sus relaciones,
responsabilidades y colaboración.

• Consecuencias o implicaciones: describen los


puntos a considerar durante la implementación
de el patrón.

Ing. Jorge Hernández


Niveles de Patrones
• Patrones Arquitectónicos
▪ Describen soluciones al nivel más alto de
software y hardware.
▪ Normalmente soportan requerimientos no
funcionales.
▪ Por ejemplo, MVC (Modelo-Vista-Controlador) y
PAC (Presentación-Abstracción-Control).

• Patrones de Diseño
▪ Describen soluciones en el nivel medio de
estructuras de software.
▪ Usualmente soportan requerimientos
funcionales.
Ing. Jorge Hernández
Niveles de Patrones
• Patrones de Programación
▪ Describen soluciones en el nivel de software
más bajo (clases y métodos).
▪ Generalmente soportan características
específicas de un lenguaje de programación.

Ing. Jorge Hernández


Clasificación de los Patrones
Según su propósito:

– De creación: conciernen al proceso de creación


de objetos.

– De estructura: tratan la composición de clases


y/o objetos.

– De comportamiento: caracterizan las formas en


las que interactúan y reparten responsabilidades
las distintas clases u objetos.

Ing. Jorge Hernández


Clasificación de los Patrones

Propósito
Creación Estructura Comportamiento
Ámbito
Interpreter
Clase Factory Method Adapter
Template Method
Chain of Responsability
Adapter Command
Bridge Iterator
Abstract Factory
Composite Mediator
Builder
Objeto Decorator Memento
Prototype
Facade Observer
Singleton
Flyweight State
Proxy Strategy
Visitor

Existen patrones de diseño, como Delegation,


Interface, Marker Interface.

Ing. Jorge Hernández


Patrones creacionales
Este tipo de diseño abstrae el proceso de instanciación
(creación de objetos), permitiendo con esto que el
sistema sea independiente de cómo sus objetos son
creados, se componen y se representan.

Un patrón de diseño creacional de clases utiliza la


herencia para variar la clase que crea una instancia.

Mientras que un patrón de diseño creacional de


objetos delegará la instanciación a otro objeto.

Los patrones creacionales se vuelven importantes


como sistemas que evolucionan para depender más de
la composición de objetos que de la herencia de clases.

Ing. Jorge Hernández


Patrones estructurales
El patrón Composite describe como crear una jerarquía de
clases a partir de clases con dos tipos de elementos:
primitivos y compuestos

El patrón Proxy actúa como un sustituto de otro objeto, el


cual puede ser utilizado de diferentes maneras. Puede
actuar como una representación local para un objeto dentro
de un espacio remoto.

El patrón Flyweight define una estructura para compartir


objetos. Los objetos se pueden compartir por, al menos,
dos razones: eficiencia y consistencia. Se enfoca en
compartir un espacio eficiente, para aquellas aplicaciones
que utilizan muchos objetos, ya que se puede ahorrar
bastante espacio compartiendo objetos en lugar de
replicarlos.
Ing. Jorge Hernández
Patrones estructurales

El patrón Facade permite crear un solo objeto que


representa un subsistema completo. Está compuesto por
un conjunto de objetos y, para llevar a cabo sus tareas,
envía mensajes a las instancias para comunicarles sus
responsabilidades.

El patrón Bridge separa la abstracción de un objeto de su


implementación, de tal manera que se puede modificar el
comportamiento de manera independiente.

El patrón Decorator describe la posibilidad de agregar


funcionalidades a los objetos de manera dinámica. Crea los
objetos de manera recursiva, de tal forma que permite
agregar un número ilimitado de funciones adicionales.

Ing. Jorge Hernández


Patrones de comportamiento
El método Template es un patrón muy utilizado y fácil
de implementar, consiste en una definición abstracta
de un algoritmo, paso a paso, donde en cada paso se
invoca ya sea a una operación abstracta o a una
operación primitiva.

El Interpreter define un conjunto de normas y reglas


como una jerarquía de clases, e implementa un
intérprete como una operación en las instancias de
estas clases.

El patrón Mediator permite optimizar las referencias


de los pares de objetos utilizando un objeto mediador
entre ellos, y como los objetos no necesitan este
objeto mediador se elimina el acoplamiento.
Ing. Jorge Hernández
Patrones de comportamiento

El patrón de Chain of responsability también permite


bajar el acoplamiento entre objetos enviando
solicitudes a un objeto utilizando una cadena de
objetos candidatos, donde cualquier candidato podría
cumplir la solicitud dependiendo de las condiciones de
ejecución.

El patrón Observer define, mantiene y administra una


dependencia entre objetos, informando en tiempo real
sobre los cambios que se presentan en uno u otro
objeto.

El patrón Strategy encapsula un algoritmo dentro de


un objeto, haciendo con esto fácil de especificar y
cambiar el algoritmo que utiliza un objeto.
Ing. Jorge Hernández
Patrones de comportamiento

El patrón Command encapsula una solicitud dentro de


un objeto, de tal manera que éste se puede pasar
como parámetro, guardar en un histórico o manipular
de alguna otra manera.

El patrón State encapsula el estado de un objeto, de


tal forma que el objeto puede cambiar su
comportamiento cuando el estado del objeto cambie

Ing. Jorge Hernández


DUDAS, COMENTARIOS,
SUGERENCIAS…!!!

Ing. Jorge Hernández

También podría gustarte