Está en la página 1de 5

3.

2 Patrones De Diseo
Los patrones de diseo son la base para la bsqueda de soluciones a
problemas comunes en el desarrollo de software y otros mbitos
referentes al diseo de interaccin o interfaces.
Un patrn de diseo resulta ser una solucin a un problema de diseo.
Para que una solucin sea considerada un patrn debe poseer ciertas
caractersticas. Una de ellas es que debe haber comprobado su
efectividad resolviendo problemas similares en ocasiones anteriores.
Otra es que debe ser reutilizable, lo que significa que es aplicable a
diferentes problemas de diseo en distintas circunstancias.
Objetivos
patrones

efectuar

de

los

Ventajas:
-

Proporcionar catlogos de elementos reusables en el diseo de sistemas


software.
Evitar la reiteracin en la bsqueda de soluciones a problemas ya
conocidos y solucionados anteriormente.
Formalizar un vocabulario comn entre diseadores.
Estandarizar el modo en que se realiza el diseo.
Facilitar el aprendizaje de las nuevas generaciones de diseadores
condensando conocimiento ya existente.
No pretenden:
Imponer ciertas alternativas de diseo frente a otras.
Eliminar la creatividad inherente al proceso de diseo.
Categoras de patrones
Patrones de arquitectura: Aquellos que expresan un esquema
organizativo estructural fundamental para sistemas de software.
Patrones de diseo: Aquellos que expresan esquemas para definir
estructuras de diseo (o sus relaciones) con las que construir sistemas
de software.

Dialectos: Patrones de bajo nivel especficos para un lenguaje de


programacin o entorno concreto.

Adems, tambin es importante resear el concepto de "anti patrn",


que con forma semejante a la de un patrn, intenta prevenir contra
errores comunes de diseo en el software. La idea de los anti patrones
es dar a conocer los problemas que acarrean ciertos diseos muy
frecuentes, para intentar evitar que diferentes sistemas acaben una y
otra vez en el mismo callejn sin salida por haber cometido los mismos
errores.
Otro patrn que podemos encontrar es el de:
Interaccin: que son patrones que nos permiten el diseo de interfaces
web.
Estructuras o plantillas de patrones
Para describir un patrn se usan plantillas ms o menos estandarizadas,
de forma que se expresen uniformemente y puedan constituir
efectivamente un medio de comunicacin uniforme entre diseadores.
Varios autores eminentes en esta rea han propuesto plantillas
ligeramente distintas, si bien la mayora definen los mismos conceptos
bsicos.
La plantilla ms comn es la utilizada precisamente por el GoF y consta
de los siguientes apartados o pasos:
-

Nombre del patrn: nombre estndar del patrn por el cual ser
reconocido en la comunidad (normalmente se expresan en ingls).

Clasificacin del patrn: creacional, estructural o de comportamiento.

Intencin: Qu problema pretende resolver el patrn?

Tambin conocido como: Otros nombres de uso comn para el patrn.

Motivacin: Escenario de ejemplo para la aplicacin del patrn.

Aplicabilidad: Usos comunes y criterios de aplicabilidad del patrn.

Estructura: Diagramas de clases oportunos para describir las clases


que intervienen en el patrn.

Participantes: Enumeracin y descripcin de las entidades abstractas


(y sus roles) que participan en el patrn.

Colaboraciones: Explicacin de las interrelaciones que se dan entre los


participantes.

Consecuencias: Consecuencias positivas y negativas en el diseo


derivadas de la aplicacin del patrn.

Implementacin: Tcnicas o comentarios oportunos de cara a la


implementacin del patrn.

Cdigo de ejemplo: Cdigo fuente ejemplo de implementacin del


patrn.

Usos conocidos: Ejemplos de sistemas reales que usan el patrn.

Patrones relacionados: Referencias cruzadas con otros patrones.

Un patrn de diseo se define como una solucin estndar para un


problema comn de programacin. Es una tcnica para flexibilizar el
cdigo hacindolo satisfacer ciertos criterios e interacta como un
lenguaje de programacin de alto nivel.
Ejemplo:

A cada diseo de proyecto le sigue el problema que trata de resolver, la


solucin que aporta y las posibles desventajas asociadas. Un
desarrollador debe buscar un equilibrio entre las ventajas y las
desventajas a la hora de decidir que patrn utilizar. Lo normal es, como
observar a menudo en la ciencia computacional y en otros campos,
buscar el balance entre flexibilidad y rendimiento.
Encapsulacin (ocultacin de datos):
Problema: los campos externos pueden ser manipulados directamente
a partir del cdigo externo, lo que conduce a violaciones del invariante
de representacin o a dependencias indeseables que impiden
modificaciones en la implementacin.
Solucin: esconda algunos componentes, permitiendo slo accesos
estilizados al objeto.
Desventajas: la interfaz no puede, eficientemente, facilitar todas las
operaciones deseadas. El acceso indirecto puede reducir el rendimiento.
Subclase (herencia):
Problema: abstracciones similares poseen miembros similares (campos
y mtodos).
Esta repeticin es tediosa, propensa a errores y un quebradero de
cabeza durante el mantenimiento.

También podría gustarte