Fundamentos de los Patrones de Diseño de Software

Resuelve problemas comunes en cualquier proyecto y domina esta excelente herramienta para mejorar la calidad del software y la productividad de un equipo
Material disponible
Avanzado
30 Clases 6 h
99€
79€
Precio en promoción
En el mundo del desarrollo podríamos identificar decenas o cientos de patrones de diseño útiles pero hay una selección de ellos que resulta especialmente universal. Son aquellos que se incluyen en el libro de Patrones de Diseño de Software de Erich Gamma y que se abordan de manera teórica en este curso de Fundamentos de los Patrones de Diseño de Software.

El curso de Fundamentos de Patrones de Diseño es una colección de vídeos cortos donde se explica cada patrón de diseño de manera independiente, junto con diversos conocimientos de diseño esenciales para entenderlos y aplicarlos. Los vídeos que encontrarás en este curso están extraídos de tres de las clases del Máster de Programación y Diseño de Software, concretamente del Módulo de Patrones.

Qué aprenderé en el Fundamentos de los Patrones de Diseño de Software

  • Qué son los Patrones de Diseño de Software
  • Por qué es importante conocer estos patrones
  • Cuáles son los 23 patrones del libro clásico de Patrones de Diseño de Software
  • Qué problemas resuelve cada patrón
  • Cuál es el diagrama de clases de un diseño malo y problemático
  • Cuál es el diagrama de clases que se aplicará para resolver los problemas de diseño
  • La intención de cada patrón
  • Cuáles son los pasos para aplicar los patrones de diseño

Objetivos del curso

El objetivo de este curso de Teoría de Patrones es abordar de una manera breve y concisa los conceptos esenciales para entender cada patrón de diseño recogido en el libro clásico de Patrones de Diseño. Se verá de manera sencilla y con ejemplos el problema de software que cada patrón quiere resolver, apoyado en ejemplos de la vida real. Luego se verá el diagrama de clases que la solución con sus explicaciones y las intenciones.

Es un curso donde nos centramos en la parte teórica de los 23 patrones, los problemas que nos podemos encontrar y cómo los resuelven, sus intenciones y el por qué de las razones de cada diseño. Con estas ideas en la cabeza podremos luego, a lo largo del módulo de Patrones de Diseño del Máster, abordar los ejercicios prácticos que se plantearán a medida que los requisitos de las aplicaciones crecen. Por tanto, podemos entender este curso como un índice de consulta rápida de los Patrones de Diseño que aplicaremos posteriormente en las clases del Máster.

Por qué debes aprender Patrones de Diseño de Software

Este curso es un índice para la consulta rápida de los patrones de diseño. Te interesa hacer este curso antes de enfrentarte a la parte práctica del Curso de Patrones de Diseño o del módulo de Patrones del Máster de Programación y Diseño de Software.

Pero además es un material excelente para tener a mano porque te puede ayudar a recordar rápidamente un patrón en particular, el problema que resuelve y cómo es el diagrama de clases resultante de hacer un buen diseño.

Qué tengo que saber

Es necesario tener conocimientos medios o avanzados de programación y tener claros los conceptos de diseño de software, diseño modular y diseño orientado a objetos.

Clases y contenidos

Presentación y objetivos Gratis

En este vídeo vamos a ver cuáles son los objetivos de las clases de este curso, dedicadas a la teoría de los patrones de diseño. Veremos además cuáles son los puntos que abordaremos de cada patrón de manera sistemática a lo largo de los siguientes vídeos.

Patrón Facade Gratis

En este vídeo estudiaremos el patrón "Fachada", estructural, que soluciona problemas de cohesión y acoplamiento de una clase, ofreciendo una interfaz unificada a un conjunto de interfaces de un subsistema.

Patrón Flyweight Gratis

Este es un patrón más bien dedicado a la optimización del software que se basa en ofrecer un mecanismo de compartir objetos para soportar de manera eficiente un gran número de objetos de grano fino.

Patrón Adapter Gratis

El adaptador es un patrón sencillo pero muy útil para resolver el smell code de "librería incompleta", convirtiendo la interfaz de una clase en otra interfaz que pueda resolver correctamente nuestras necesidades.

Patrón Memento Gratis

Este patrón de diseño de comportamiento pensado para memorizar el estado de un objeto a lo largo del tiempo, sin romper su encapsulación. Se puede usar para llevar una memorización de los estados y trabajo con funcionalidades de undo / redo.

Diseño modular en los patrones de diseño

En este vídeo se hace una pausa para explicar cómo se han clasificado los patrones de diseño para esta exposición, abordando explicaciones y conceptos de diseño modular.

Patrón Template Method

Este es uno de los patrones más simples donde se usa un esquema elemental de herencia para resolver problemas de cohesión en una clase, por medio de la definición de un esqueleto del algoritmo realizado apoyado en métodos abstractos, que se definen en las derivadas.

Patrón Factory Method

Es un patrón creacional que se basa en la idea del Template Method para aumentar la cohesión de clases que se dedican a crear objetos, unos u otros dependiendo de unas condiciones.

Patrón Composite

Es un patrón de diseño que resuelve un problema extraordinariamente frecuente en el software y en la vida real: cómo realizar el software de modo que no nos importe si estamos lidiando con un elemento individual o una agrupación de elementos.

Patrón Proxy

En este caso encontramos un patrón de diseño estructural que trata de resolver la gestión de tratamientos distintos debidos a la accesibilidad de los elementos con los que necesito trabajar.

Patrón Iterator

Se trata de un patrón de diseño que se encarga de suministrar elementos de una estructura sin que nos importe cómo es esa estructura, o que ella pueda cambiar.

Patrón State

Es un patrón de comportamiento que se encarga de aliviar problemas de cohesión derivados a la complejidad del código cuando se tiene que operar de maneras distintas dependiendo del estado de los objetos.

Patrón Strategy

En este caso nos encontramos ante un patrón que trata de resolver problemas de cohesión cuando tenemos que usar estrategias distintas en una familia de algoritmos, encapsulando cada uno en clases que permite que sean intercambiables y variables dependiendo de los clientes que los van a usar.

Patrón Bridge

Es un patrón estructural que mejora la cohesión, acoplamiento y tamaño cuando estamos ante jerarquías de herencia paralelas.

Repaso a los patrones vistos hasta el momento

En este vídeo comenzamos la segunda sesión de patrones, con un repaso de todos los patrones anteriores.

Patrón Visitor

Es un patrón de comportamiento que hace una modularización por método para mejorar la cohesión y el tamaño. Para ello representa operaciones a realizar sobre elementos sin realizar cambios en las clases de los elementos con los que opera.

Patrón Observer

Este patrón realiza una modularización por evento evitando problemas de acoplamiento, de modo que, cuando ocurren cambios en el estado de un elemento, se pueda notificar a todos los que necesiten saberlo.

Patrón Decorator

El patrón Decorador permite modularizar por subtarea, pudiendo dividir el código en varias clases que permiten realizar partes de una tarea, combinables entre sí para resolver problemas de todos los tamaños.

Patrón Chain of Responsibility

La cadena de responsabilidad nos permite realizar también una descomposición por subtarea, definiendo secuencias versátiles y maleables para resolver situaciones donde existen diversos agentes resolutores.

Patrón Command

El patrón Comando permite realizar una descomposición por subtarea mediante la encapsulación de una petición como un objeto. Consigue que una clase tenga que estar acoplada a un grupo de clases, siendo poco cohesiva y tendiendo a crecer demasiado.

Patrón Interpreter

Estamos ante un patrón de diseño de comportamiento que permite definir una representación de la gramática de un lenguaje y la interpretación de las sentencias de ese lenguaje.

Segundo repaso a los patrones de diseño

Al inicio de la tercera sesión se realiza un repaso de los 18 patrones de diseño que llevamos explicados.

Patrón Abstract Factory

Es un patrón de diseño creacional que permite crear familias de objetos relacionados entre sí sin tener que preocuparse por la clase concreta que los necesita.

Patrón Prototype

Este es un patrón creacional que usa el concepto de prototipo para permitir resolver las tareas de creación de objetos o familias de objetos mediante copias de los prototipos.

Patrón Builder

El patrón Builder es útil cuando la construcción de los objetos comienza a ser un problema, porque sea muy compleja, separando la construcción de los objetos de su representación.

Patrón Mediator

El patrón Mediador resuelve que en ciertas organizaciones todos los objetos tengan que conocerse a todos, estableciendo uno o varios mediadores en los que nos apoyaremos para realizar las tareas.

Patrón Singleton

Con el patrón Singleton queremos asegurarnos que una clase solamente tenga una instancia a lo largo de la aplicación y a la vez que se provee de un punto de acceso global al objeto.

Explicaciones de las mejoras en el diseño modular de los patrones

En este vídeo se ofrecen conclusiones generales de los patrones de diseño y cómo éstos ayudan a mejorar el diseño modular.

Relaciones entre patrones

Brevemente se explica cómo unos patrones se relacionan con otros, demostrando que la aplicación de patrones en la mayoría de casos no se da de manera individual, sino que lo normal es que aplicando varios a la vez se consiga un buen diseño.

Aplicación de los patrones de diseño

En este vídeo se muestra el procedimiento de aplicación de los patrones de diseño recogidos en el libro de patrones por excelencia, el de Gamma.

Valoraciones

Enrique Gálvez

Un gusto tener las explicaciones de Luis para un tema tan delicado como los patrones, en vídeos cortos que nos ayudan a repasar cada patrón.

Maria García Huertas

Una referencia para tener muy cerca de los patrones de diseño. Siempre que tengo dudas lo repaso para aclararme de los patrones antes de usarlo...

¿Conoces nuestra tarifa plana?

Toda la formación de EscuelaIT, con más de 200 cursos completos para aprender las más variadas tecnologías de programación, diseño y marketing online. Todo! con tu suscripción.

Suscríbete