Josshua Fletes
Categorías
Patrones creacionales: Proveen mecanismos para crear objetos
Patrones estructurales: Determinan la combinación de las partes más pequeñas para hacer estructuras más grandes
Patrones de comportamiento: Se encargan de que los objetos funcionen correctamente entre ellos
LEONARDO FERNANDEZ
Tengo 2 años de experiencia, y hasta el día de hoy nunca había usado patrones de diseño (al menos concientemente), recorde que en angular un anterior desarrollador de una aplicacion que herede habia usado el patron builder para crear tablas dinamicas en angular, no tenia idea de lo que hacia ese codigo, y lo modifique, ahora veo que fue un error, quiza vuelva a transformarlo mas adelante a builder, jajaja aunque quiza quedo la esencia. los patrones de diseño son detalles muy importantes que un bootcamp como del que yo sali omite.
Jesus Mora
El DDD es considerado un patrón de diseño? Además también he escuchado microservicios y tengo la duda de saber si es un patrón de diseño o no
Daniel Basulto
ProfesorDentro del contexto en el que estamos abordando a los patrones de diseño no, sin embargo DDD (Domain Driven Design) si pudiera ser considerado una estrategia/principio/patron de diseño de aplicaciones, incluso de negocios enteros.
Dentro de las ideas de segmentacion de dominios de DDD la idea de los microservicios (una idea de ejecucion) cae como anillo al dedo, a mi me gusta decir que DDD puede ser implementado usando Microservicios, pero usar Microservicios no implica usar DDD.
Diego Reyes Cabrera
Pensé que un perfecto ejemplo de patrón creacional seria el Provider pattern. Este se ha vuelto importantísimo en cómo hacemos frontend hoy en día.
Ulises Alejandro Mánica Caricio
Definitivamente entender de patrones de diseño, algoritmos avanzados y estructuras de datos te permite tener una abstracción más cercana a lo increible del desarrollo.
Daniel Basulto
ProfesorMas herramientas para tu caja Ulises!
Josian Francisco Cáceres Suazo
5. Categorías de Patrones de Diseño.
Los patrones de diseño están divididos en tres (3) categorías:
Patrones Creacionales
Su función es proveer mecanismos para la creación de objetos que favorecen la flexibilidad, reusabilidad y extensibilidad del código.
Ejemplos: Builder, Factory Method y Singleton.
Patrones Estructurales
Su función es determinar cómo las clases y objetos se combinan/ensamblan para formar estructuras más grandes.
Ejemplos: Adapter, Decorator, Facade y Proxy.
“Estructuras”, ya se tienen las clases pero ahora se debe encontrar la forma de construir clases que quizás estén compuestas por las primeras.
Patrones de Comportamiento
Su función es tratar con procedimientos que se encargan de implementar una comunicación y asignación de responsabilidades efectiva entre objetos.
Ejemplos: Command, Iterator, Observer y Strategy.
“Estructuras”, ya se tienen las clases pero ahora se debe encontrar la forma de construir clases que quizás estén compuestas por las primeras.
Nolbert Juarez
no dire cuál es el q más me gusta, si no el que mas me trajo problemas a nivel de unit testing: el patrón singleton 🤯
Miguel Angel Reyes Moreno
¿Por qué te causó problemas?
Alvaro Eduardo Garzón Pira
¡Hola!
Es interesante lo que dices, incluso en el acrónimo STUPID se menciona al patrón de diseño Singleton como un codesmell, ya que dificulta mucho las pruebas unitarias y a largo plazo, el mantenimiento del código
Gizela Delgado Soto
Mateo Henao
Muy buen resumen, explica y responde como usarlo, Gracias !!
Gerald de Jesús González Zeledón
Fluent interfaces se considera un tipo de patrón de diseñó?, es muy parecido a patrón builder pero tiene objetivos diferente.
Daniel Basulto
ProfesorEn mis palabras:
Fluent interfaces es una estrategia de construir la API de una clase y como se consumirán los métodos.
No estaba familiarizado con el termino, veo que Martin Fowler estuvo detrás de su concepción, un gran arquitecto de software.
La diferencia sustancial entre builder y FI, es que builder consiste en partir el proceso de construcción en pasos, pero no implica que retornemos el objeto (this) para concatenar los métodos. Mientras que en FI la idea central es esta, concatenar mediante el retorno del objeto.
Builder puede implicar FI, pero FI no necesariamente implica builder.
Diría que no es un patrón de diseño estrictamente hablando, diría que es un complemente a usar en los patrones.
Saul Hernando Echeverri Duque
Estoy tranajando con spring boot, y este framework por defecto utiliza los patrones singleton y prototype.
Daniel Basulto
ProfesorOtros ejemplos de bibliotecas/frameworks que por defecto ya implementan ideas de los patrones son loopback, nestjs, angular.
Fabiola Aracely Ramos Sandoval
¿Qué pasa si combino varias categorías?
Lo que ocurre es que creas arquitecturas de software de nivel empresarial, altamente robustas y escalables. En la vida real, los problemas complejos rara vez se resuelven con una sola herramienta. Es completamente normal y recomendable combinar patrones de diferentes categorías. Por ejemplo, podrías usar un patrón creacional como Builder para construir un objeto complejo paso a paso. Luego, podrías aplicar un patrón estructural como Decorator para añadirle nuevas funcionalidades a ese objeto sin alterar su clase base. Finalmente, podrías usar un patrón de comportamiento como Command para que ese mismo objeto ejecute acciones específicas basadas en las interacciones del usuario. Al combinarlos, estás aplicando las mejores prácticas de la ingeniería de software, logrando sistemas que son fáciles de extender, mantener y adaptar a los constantes cambios del negocio.
Esaú Maximino
Los patrones de diseño que se encargan de proveer procedimientos para la comunicación entre objetos y la asignación de responsabilidades pertenecen a la categoría de patrones de comportamiento. Ejemplos de estos patrones incluyen el Command, el Iterator, el Observer y el Strategy. Estos patrones ayudan a definir cómo los objetos interactúan y colaboran de manera efectiva en un sistema.
Jorge Arias Argüelles
Patrones de Diseño: Soluciones reutilizables a problemas comunes en programación.
Relación con POO: Conexión estrecha entre patrones y programación orientada a objetos, pero no dependencia.
Este esquema te servirá como guía para tus estudios.
Eliezer Jose Useda Centeno
existe el patrón repository en qué categoría quedaría por q no lo mencionan, no es muy útil?
Daniel Basulto
ProfesorEl patrón Respository podría considerarse como una especialidad/implementación del patrón estructural facade.
Los patrones de diseño surgen como soluciones a problemas comunes en la construccion de codigo, el patron repository surge desde un contexto de negocio, particularmente al diseño de la capa de datos.
Mira este link del autor del repository Martin Fowler: