Tabla de Contenidos



Descargar 407,94 Kb.
Página1/8
Fecha de conversión14.05.2017
Tamaño407,94 Kb.
  1   2   3   4   5   6   7   8

Tabla de Contenidos


Tabla de Contenidos 1

Introducción 2

Antecedentes 2

Tipos de Patrones de Diseño 3

Patrones Creacionales 3

Patrones Estructurales 3

Patrones de Comportamiento 4

Relación entre los patrones 4

AntiPatrones 5

Patrones vs Antipatrones 5

Patrones Creacionales 5

Patrón Singleton 5

Patrón Prototype 9

Patrón Abstract Factory 11

Patrones Estructurales 12

Patrón Decorador 12

Patrón Adapter 14

Patrón Bridge 16

Patrón Façade 18

Patrones de Comportamiento 21

Patrón Interpreter 21

Patrón Template Method 22

Patrón Command 24

Patrón Observer 25

Patrón Estrategia 26

Frameworks vs Patrones de Diseño 27

Conclusión 28

Glosario 30

Bibliografía 31

Introducción

Como analistas y programadores se necesita desarrollar a diario las habilidades para resolver problemas usuales que se presentan en el desarrollo del software. Por cada problema que se nos presenta pensamos distintas formas de resolverlo, incluyendo soluciones exitosas que ya hemos usado anteriormente en problemas similares. Es así que a mayor experiencia que tengamos, nuestro abanico de posibilidades para resolver un problema crece, pero al final siempre habrá una sola solución que mejor se adapte a nuestra aplicación. Si documentamos esta solución, podemos reutilizarla y compartir esa información que hemos aprendido para resolver de la mejor manera un problema específico.


Los patrones del diseño tratan los problemas del diseño que se repiten y que se presentan en situaciones particulares del diseño, con el fin de proponer soluciones a ellas. Por lo tanto, los patrones de diseño son soluciones exitosas a problemas comunes. Existen muchas formas de implementar patrones de diseño. Los detalles de las implementaciones son llamadas estrategias.

Desde un punto de vista general, los patrones de diseño son una descripción a un problema que ocurre una y otra vez en nuestro entorno, así como la solución a ese problema, de tal modo que se pueda aplicar esta solución un millón de veces, sin hacer lo mismo dos veces.

Los patrones no nacieron debido a la programación; como veremos a continuación, estos nacieron a causa de querer implementar mejores métodos para la construcción de edificios.
En la programación orientada a objetos resulta complicado descomponer el sistema en objetos (encapsulación, granularidad, dependencias, flexibilidad, reusabilidad, etc.), los patrones de diseño nos permitirán identificar a los objetos apropiados de una manera mucho más sencilla. También nos permitirán determinar la granularidad de los objetos.

Antecedentes

En 1979 el arquitecto Christopher Alexander aportó al mundo de la arquitectura el libro The Tímeless Way of Building. En él proponía el aprendizaje y uso de una serie de patrones para la construcción de edificios de una mayor calidad.

En palabras de este autor, "Cada patrón describe un problema que ocurre infinidad de veces en nuestro entorno, así como la solución al mismo, de tal modo que podemos utilizar esta solución un millón de veces más adelante sin tener que volver a pensarla otra vez."

Alexander consideraba que muchos de los procesos implicados en el diseño de estructuras físicas eran variables, PERO que existía una parte común e invariante, que definía los principios generales de diseño y construcción.

Los patrones que Christopher Alexander y sus colegas definieron, publicados en un volumen denominado A Pattern Languaje, son un intento de formalizar y plasmar de una forma práctica generaciones de conocimiento arquitectónico. Los patrones no son principios abstractos que requieran su redescubrimiento para obtener una aplicación satisfactoria, ni son específicos a una situación particular o cultura, son algo intermedio. Un patrón define una posible solución correcta para un problema de diseño dentro de un contexto dado, describiendo las cualidades invariantes de todas las soluciones.

Más tarde, en 1987, Ward Cunningham y Kent Beck usaron varias ideas de Alexander para desarrollar cinco patrones de interacción hombre-ordenador (HCI) y publicaron un artículo en OOPSLA-87 titulado Using Pattern Languages for OO Programs.

No obstante, no fue hasta 1990-1994 cuando los patrones de diseño tuvieron un gran éxito en el mundo de la informática a partir de la publicación del libro Design Patterns escrito por el GoF (Gang of Four) compuesto por Erich Gamma, Richard Helm, Ralph Johnson y John Vlisides, en el que se recogían 23 patrones de diseño comunes.

Tipos de Patrones de Diseño

Los patrones de diseño se pueden clasificar de acuerdo a su propósito. En esta clasificación existen los patrones: creacionales, estructurales y de comportamiento.


Patrones Creacionales


Los patrones de diseño creacionales abstraen el proceso de instanciación. Estos ayudan a hacer un sistema independientemente de cómo los objetos son creados, compuestos y representados; además, introducen una gran dosis de flexibilidad en todos los aspectos que involucren creación de objetos. Tienen las siguientes características:
Encapsulan el conocimiento sobre las subclases concretas que el sistema utiliza.

Ocultan como las instancias de las clases son creados y puestas juntas.


Estos son los tipos de patrones creacionales:

Creacional de la Clase: Los patrones creacionales de Clases usan la herencia como un mecanismo para lograr la instanciación de la Clase. Por ejemplo el método Factoría.

Creacional del objeto: Los patrones creacionales de objetos son más escalables y dinámicos comparados de los patrones creacionales de Clases. Por ejemplo la Factoría abstracta y el patrón Singleton.
Ejemplos:


  • Abstract Factory

  • Builder

  • Factory Method

  • Prototype

  • Singleton

Patrones Estructurales


En los patrones estructurales, lo fundamental son las relaciones de las clases. Se trata de conseguir que cambios en los requisitos de la aplicación no ocasionen cambios en las relaciones entre los objetos.

Las relaciones de uso están determinadas por las interfaces que soportan los objetos.


Existen varios tipos de patrones estructurales:
De clase: usa herencia para componer interfaces o implementaciones.

Ejemplos:

Class Adapter
De objeto: composición de objetos en tiempo de ejecución
Ejemplos:


  • Object Adapter

  • Bridge

  • Decorador

  • Façade

  • Proxy

Patrones de Comportamiento


Existen los siguientes tipos de patrones de comportamiento

De clase: Los patrones de comportamiento de Clases usan la herencia para distribuir el comportamiento entre Clases. Por ejemplo Interpreter.

Ejemplos:

Interpreter


De Objetos: Los patrones de comportamiento de objetos nos permite analizar los patrones de comunicación entre objetos interconectados, como objetos incluidos en un objeto complejo.
Ejemplos:

  • Iterator

  • Observer

  • Visitor
  1   2   3   4   5   6   7   8


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal