Patrones de Diseño en Programación Orientada a Objetos con Go
Clase 8 de 19 • Curso de Go Avanzado: Concurrencia y Patrones de Diseño
Contenido del curso
Concurrencia
- 2

Condiciones de Carrera en Programación Concurrente con Go
04:52 min - 3

Evitar Condiciones de Carrera en Go con Mutex y WaitGroup
11:26 min - 4

Lectura y Escritura Concurrente en Go con RWMutex
06:15 min - 5

Creación de un Sistema de Caché Concurrente en Go
14:29 min - 6

Manejo de Condiciones de Carrera en Go: Implementación de Mutex
08:52 min - 7

Cache concurrente en Go para cálculos intensivos de Fibonacci
16:31 min
Patrones de diseño
- 8

Patrones de Diseño en Programación Orientada a Objetos con Go
Viendo ahora - 9

Patrón de Diseño Factory en Go: Creación y Uso Práctico
15:17 min - 10

Implementación de Singleton en Go para Conexiones de Base de Datos
08:48 min - 11

Patrón de Diseño Adapter en Go: Implementación Práctica
09:51 min - 12

Patrón de Diseño Observer en Go: Implementación Práctica
11:59 min - 13

Implementación del Patrón de Diseño Strategy en Go
08:53 min
Net
- 14

Escaneo de Puertos TCP con Go: Introducción Básica
07:45 min - 15

Concurrencia en Go: Escáner de Puertos Eficiente y Personalizable
09:16 min - 16

Implementación de NetCAD como Cliente TCP en Go
10:14 min - 17

Construcción de Back End para Servidor de Chat en Go
16:08 min - 18

Implementación de un Servidor de Chat en Go con TCP
13:54 min
Conclusión
¿Qué son los patrones de diseño y por qué son importantes?
Los patrones de diseño son conceptos fundamentales en el desarrollo de software. Imagínalos como planos que nos ayudan a resolver problemas comunes de diseño sin necesidad de reinventar la rueda. Estos patrones son esenciales para convertirte en un ingeniero más habilidoso y eficiente. Aunque no son fragmentos de código específicos, proporcionan guías generales que puedes adaptar a tus necesidades específicas.
El término "patrones de diseño" fue introducido por Christopher Alexander, un arquitecto que exploró su aplicación en la construcción y luego fue adoptado en el ámbito del software. Un grupo de cuatro autores, conocidos como el "Gang of Four", adaptaron este concepto al software, especialmente en programación orientada a objetos. En su libro, presentaron 23 patrones de diseño variados en tres categorías principales: creacionales, estructurales y de comportamiento.
¿Cuáles son las categorías de los patrones de diseño?
Patrones creacionales: ¿cómo se crean nuevos objetos?
Los patrones creacionales se centran en mecanismos para crear objetos de forma flexible y reutilizable, lo que es clave en un software maduro. Este tipo de patrones facilita la generación de instancias de nuevas clases de manera que el código sea reutilizable y mantenga las mejores prácticas en ingeniería de software. En este curso, estudiarás dos patrones creacionales: Factory y Singleton.
Patrones estructurales: ¿cómo se construyen las estructuras de clases?
Los patrones estructurales ayudan a definir cómo crear objetos a partir de clases más grandes, aplicando herencia o composición. Esto se hace siempre buscando maximizar la flexibilidad y reusabilidad del código. En este módulo, analizaremos el patrón Adapter, que es fundamental para establecer cómo deberían configurarse las relaciones entre objetos y clases.
Patrones de comportamiento: ¿cómo se comunican los objetos?
Los patrones de comportamiento son esenciales para definir cómo los objetos de diferentes clases se comunican de manera efectiva. Aquí la idea es establecer métodos de comunicación que cumplan un objetivo común. En este curso, revisaremos los patrones Observer y Strategy, ambos cruciales para entender y mejorar las interacciones entre objetos.
¿Por qué es fundamental implementar patrones de diseño en tu lenguaje de programación?
Implementar patrones de diseño en tu lenguaje de programación, como Go en este caso, te permitirá aprovechar las ventajas y abordar las limitaciones específicas de cada lenguaje. Aprenderás a adaptar estos patrones universales a las particularidades de Go, lo que enriquecerá tu capacidad de diseñar soluciones elegantes y eficientes. Así que, prepárate para aplicar estos valiosos conceptos y elevar tu habilidad como desarrollador. ¡Adelante, el siguiente paso es la implementación práctica!