Qué son los patrones de diseño en la industria del software

Los patrones de diseño son soluciones habituales a problemas que aparecen durante el diseño de un producto software.

Un patrón no es una pieza de código, sino un concepto general para resolver un problema concreto.  El patrón de diseño ayuda con ciertas instrucciones a implementar una solución que se adapte a las necesidades del programa que se esté creando..

Patrones y algoritmos

No se deben confundir los conceptos de algoritmo y patrón de diseño. El algoritmo es una receta para solucionar un problema muy concreto y el patrón de diseño es un plano arquitectónico para indicar cómo repartir las funciones, clases y objetos en nuestro programa.

Descripción de un patrón de diseño

La descripción de un patrón de diseño es un texto formal que permite la implementación del patrón en múltiples entornos y contextos.

Esta descripción del patrón incluye elementos como propósito, motivación, estructura de clases, aplicabilidad, pasos de implementación y ejemplo de código.

Clasificación

Los patrones de diseño se diferencian en su complejidad, nivel de detalle y escala de aplicabilidad.

Los patrones más básicos se denominan idioms y suelen aplicarse a un lenguaje de programación específico.

Los patrones más complejos y de alto nivel se denominan patrones de arquitectura y son aplicables a casi cualquier lenguaje de programación. Estos patrones ayudan al diseño global de la aplicación definiendo la arquitectura del proyecto software.

Clasificación por propósito

Los patrones de diseño se pueden clasificar también por el tipo de propósito que tenga el patrón de diseño.

Patrones de construcción

Estos patrones proporcionan mecanismos y enfoques para la creación de objetos buscando mejorar la reutilización de código y su flexibilidad.

Patrones de estructura

Estos patrones ofrecen soluciones para ensamblar y relacionar objetos para crear estructuras más grandes y maximizar su eficiencia y flexibilidad.

Patrones de comportamiento

Estos patrones ofrecen mecanismos para mejorar la comunicación entre objetos y definir las responsabilidades entre clases y objetos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.