Archivo de la etiqueta: patrones

Patrones de diseño I – Introducción

Recientemente, un compañero de trabajo nos ha realizado una workshop acerca de diseño por capas y patrones, al que hemos asistido un grupo de 7 desarrolladores. Se han comentado bastantes cosas que desconocía pero en líneas generales eran ideas muy genéricas que está bien refrescar. En cualquier caso, me ha sorprendido enormemente que gran parte de los compañeros ni tan siquiera habían oído hablar de patrones de diseño de software. Cierto es que no somos una empresa dedicada al desarrollo como tal, pero aún así me sorprende que ni tan siquiera se hubiera oído acerca de su existencia.

Es por esto que me he decidido a escribir una serie de entradas acerca de patrones de diseño de software. Mi objetivo es publicar los patrones de diseño más habituales explicando los casos en los que puede ser útil su uso, apoyándome en ejemplos.

En primer lugar, la pregunta: ¿que es un patrón de diseño (dessign pattern)? Los patrones son soluciones a problemas comunes en el diseño de software, que ya han sido resueltos por otros programadores anteriormente (habitualmente más sabios) y en los que nos podemos apoyar a la hora de afrontar problemas similares.

Conocer estos patrones puede ayudar a los desarrolladores dado que facilita el aprendizaje y constituye una herramienta muy útil para estandarizar el modo de afrontar este tipo de retos. Los patrones de diseño se suelen clasificar en tres categorías: patrones de creación, patrones de estructura y patrones de comportamiento.

Vamos a comenzar viendo los patrones de creación. Los patrones de creación son planteamientos acerca del modo de construir nuevos objetos en la aplicación. Los más conocidos que se engloban en esta categoría son los siguientes:

  • Abstract factory
  • Factory method
  • Singleton
  • Prototype
  • Builder

Los patrones de estructura se postulan como soluciones para estructurar las clases. Los que se suelen incluir en esta categoría son:

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

Por último los patrones de comportamiento se centran en resolver problemas relacionados con el comportamiento del software. En esta última categoría se engloba:

  • Chain of responsibility
  • Command
  • Interpreter
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template method
  • Visitor

En los próximos días, publicaré el primer post acerca de patrones de creación. Espero que os sea útil.

Hasta pronto