JavaScript — Introducción a los patrones de diseño en JS

Mauricio Garcia
3 min readMay 7, 2020

--

Temario

  • ¿Qué es un patrón de diseño?
  • Tipos de patrones (Creacional, Estructural y Comportamiento)

i. ¿Qué es un patrón de diseño?

Los patrones de diseño son unas técnicas para resolver problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces. [ref]

Nosotros como desarrolladores estamos acostumbrados a resolver problemas (mediante código) y muchas veces hemos detectado que ciertos problemas que se resuelven de una manera muy parecida (patrones), por fortuna hubo personas que se dedicaron a documentarlas y aunque muchos de estos patrones apenas están de moda, la verdad es de que llevan rato existiendo. Fue en los 90’s cuando los Gang of four (GOF) [ref] lanzaron el libro Design Patterns: Elements of Reusable Object-Oriented Software que fue crucial, ya que desde ahí los patrones se formalizaron y al día de hoy se han vuelto esenciales en el desarrollo de software.

Esto quiere decir que un patrón de diseño es una solución a uno o más problemas (ya sean parecidos o diferentes) y que la solución pueda ser reutilizable.

Entre sus principales ventajas de usar patrones de diseño son…

  • Fáciles de aplicar — Al no estar vinculados con un problema específico pueden ser reutilizables de una manera rápida y sencilla.
  • Funcionalidad — Al ser utilizados y probados por miles de desarrolladores, nos garantiza que realmente va a funcionar.
  • Ahorro de tiempo — Cuando conocemos y entendemos los patrones de diseño es más rápido y fácil encontrar una solución, que estar buscando una solución (que quizás no sea la mejor, ni la mas optima).
  • Lenguaje en común — Aquel desarrollador que entienda los patrones de diseño, al ver tu código sabrá lo que hiciste y porque lo resolviste de esa manera, lo cual facilita el entendimiento del código.
  • Refactorizar código — Cuando trabajamos con patrones de diseño minimizamos la posibilidad de refactorizar el código, ya que el patrón correcto nos garantiza que pueda ser una (si no es que la mejor) solución a nuestro problema.

ii. Tipos de patrones (Creacional, Estructural y Comportamiento)

a — Patrones creacionales (Creational)

Los patrones de diseño de creación están basados en la creación de nuevos objetos que de manera controlada nos ayuda a resolver un problema; dicho de otra manera son los que nos facilitan la creación de nuevos objetos de tal forma que su creación pueda ser desacoplada de la implementación de nuestra aplicación.

Los patrones que incluyen esta categoría son:

  • Clase — Factory Method[ref].
  • Objeto — Abstract Factory, Builder, Prototype, Singleton[ref].

b — Patrones estructurales (Structural)

Los patrones de diseño estructurales se refieren a la composición de clases y objetos, nos ayuda a simplificar la relación entre objetos, estos patrones nos ayudan a que si hay cambios, sean mínimos y no afecten a toda la aplicación; esto quiere decir que podemos agregar nueva funcionalidad o actualizar sin modificar nuestra aplicación completa.

Los patrones que incluyen esta categoría:

  • Clase — Adapter [ref]
  • Objeto — Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy [ref]

c — Patrones de comportamiento (Behavioral)

Los patrones de diseño de comportamiento mejoran la comunicación y responsabilidad entre objetos, nos ayudan a que se tenga toda la información sincronizada.

Los patrones que incluyen esta categoría:

  • Clase — Interpreter, Template method
  • Objeto — Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy, Visitor

En las siguientes stories, vamos a ir comprendiendo y entendiendo uno a uno, aprovecharemos que vimos las clases para los ejemplos.

Nota: Espero retomar a la brevedad los patrones de diseño y terminar de explicar los de comportamiento

--

--

Responses (1)