26

Qué son y para qué sirven los patrones de diseño

2130Puntos

hace 6 años

Curso de Patrones de Diseño en Android
Curso de Patrones de Diseño en Android

Curso de Patrones de Diseño en Android

Implementa las mejores prácticas para crear aplicaciones escalables, profesionales y altamente testeables en Android. Aprende a usar patrones diseño y patrones de arquitectura en Android. ¡Mejora tus aplicaciones con el Curso de Patrones de Diseño en Android de Platzi!

Actualizado: Agosto 2021

¿Sabías que la idea de los patrones comenzó en la arquitectura con Christopher Alexander? Los libros que publicó describen la manera de construir arquitectura dinámica que fue la idea inspiracional para el uso de patrones en software.

Aquí te cuento qué son los patrones de diseño, para qué sirven y los tipos de patrones de diseño.

Recuerda que tenemos un Curso Profesional de JavaScript en Platzi para que inicies tu carrera profesional en el mundo de la programación.

¿Qué son los patrones de diseño?

Un patrón de diseño es una solución para un problema dentro de un contexto. En otras palabras, los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.

Esta es una definición que considero correcta ya que cuando conoces un patrón, puedes ver inmediatamente dónde puede serte útil. En resumen y de forma sencilla, un patrón de diseño es una manera de resolver un problema.

¿Por qué usar un patrón de diseño?

Cuando empezamos a desarrollar software, es común que cada quien utilice su propia lógica, conocimientos y experiencia para crear código. Y esto muchas veces resulta en desarrollos complejos que sólo su creador entiende.

Pero, ¿es posible desarrollar un módulo que otro programador pueda aprovechar entender y mejorar? La respuesta está en los patrones de diseño. Estos básicamente son modelos muestra que sirven como guía para que los programadores trabajen sobre ellos.

Un patrón de diseño debe cumplir al menos con los siguientes objetivos:

  1. Estandarizar el lenguaje entre programadores
  2. Evitar perder tiempo en soluciones a problemas ya resueltos o conocidos
  3. Crear código reusable (excelente ventaja)

Para qué sirven los patrones de diseño en programación

Existen muchos patrones, lo importante es saber que existen y preocuparnos por entenderlos y usarlos. De esta manera, podrás convertirte en un profesional en el mundo de la programación. En un mundo ideal todo programador debería aprender la sintaxis de la programación y luego los patrones de diseño.

Estos te servirán como guía para escribir código de la manera correcta y te ayudarán a resolver problemas de una manera estándar y profesional.

Tipos de patrones de diseño

Los patrones de diseño se clasifican en tres tipos diferentes dependiendo del tipo de problema que resuelven. Estos pueden ser creacionales, estructurales y de comportamiento.

Creacionales

Su objetivo es resolver los problemas de creación de instancia. Por ejemplo:

  • Singleton (Instancia única): Nos garantiza la existencia de una única instancia para una clase.
  • Prototype (prototipo): Clona las instancias ya existentes.
  • Abstract Factory
  • Builder
  • Factory Method

Estructurales

Su nombre es muy descriptivo, se ocupa de resolver problemas sobre la estructura de las clases. Por ejemplo:

  • Bridge (Puente) Separa la abstracción de la implementación.
  • Decorator (Decorador) Agrega funcionalidades a una clase de forma dinámica.
  • Facade (Fachada) Nos provee una interfaz unificada y simple para acceder a un sistema más complejo.
  • Adapter
  • Composite
  • Flyweight
  • Proxy

De comportamiento

Nos ayuda a resolver problemas relacionados con el comportamiento de la aplicación. Ofrece soluciones respecto a la interacción y responsabilidad entre objetos y clases. Por ejemplo:

  • Observer (Observador): Un objeto le pasa el estado interno a muchos objetos que están interesados.
  • Chain of Responsibility
  • Command
  • Interpreter
  • Iterator
  • Mediator
  • Memento
  • State
  • Strategy
  • Template Method
  • Visitor

La importancia de aprender patrones de diseño en desarrollo backend

En desarrollo web tenemos dos opciones principales: Desarrollo Frontend y Desarrollo Backend. Algunas de las personas que recién terminan el Curso Gratis de Programación Básica de Platzi suelen preguntarse ¿es mejor el desarrollo frontend? ¿es mejor el desarrollo backend?

Los frontends tienden a ser programadores, pero hay diseñadores que también hacen frontend. Son los encargados de maquetar la estructura semántica del contenido (HTML), codificar el diseño en hojas de estilo (CSS) y agregar la interacción con el usuario (Javascript).

Un backend compone el acceso a bases de datos y generación de plantillas del lado del servidor. En backend se encargan de implementar MySQL, Postgres, SQL Server o MongoDB. Luego, un lenguaje como PHP o JSP, o frameworks como RoR, Django, Node.JS o .NET se conectan a la base de datos.

Y si bien los patrones de diseño son muchos son útiles dentro de tu ruta profesional como desarrollador o desarrolladora backend.

Y tú, ¿conoces algunos patrones de diseño? Si es así, déjalos en los comentarios abajo y espera el próximo artículo con mucha más información y ejemplos básicos de su uso.

Te comparto la ruta de aprendizaje de David Toca para que te hagas una idea de cómo podría ser tu ruta de aprendizaje backend en Platzi:

https://static.platzi.com/media/user_upload/toca-fd37c43d-d48c-4150-9766-0ac53d3f0693.jpg

Y si quieres profundizar en tus conocimientos inicia gratis el Curso Profesional de JavaScript donde aprenderás su funcionamiento, desarrollar plugins y estructurar mejor tu código.

Curso de Patrones de Diseño en Android
Curso de Patrones de Diseño en Android

Curso de Patrones de Diseño en Android

Implementa las mejores prácticas para crear aplicaciones escalables, profesionales y altamente testeables en Android. Aprende a usar patrones diseño y patrones de arquitectura en Android. ¡Mejora tus aplicaciones con el Curso de Patrones de Diseño en Android de Platzi!
Italo
Italo
iitalomorales

2130Puntos

hace 6 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
2
43036Puntos

Mil gracias! Creo que es esto lo que necesito en ste momento. ¿Puedes aconsejarme dónde encontrar información desde 0 sobre patrones, explicado sencillo y en español? De nuevo, mil gracias. Mon

1

Ademas de que singleton nos asegura que la clase tenga solo una instancia también nos provee un punto global de acceso.

1
6078Puntos

seria bueno un cursito de patrones de diseño no???

0
8068Puntos

Maravilloso aporte, me deja claras muchas cosas!

0

Qué debería aprender primero?
POO ó Patrones de diseño

0
1193Puntos
un año

POO, dado que son las bases para poder aplicar y entender Patrones de diseño