Curso de Patrones

El curso de patrones de diseño de software más completo de la Red
En marcha
Avanzado
16 Clases 23 h (aprox.)
120€
99€
Precio en promoción

Próxima clase

Lunes 08 de marzo

h

Añadir a Google Calendar

Los patrones de diseño de software aportan soluciones conocidas a problemas recurrentes en el desarrollo de todo tipo de aplicaciones, así como a la lista de smell codes vistos en diseño orientado a objetos. Permiten reutilizar diseños de software orientado a objetos de manera efectiva, para crear soluciones más flexibles y escalables, facilitando el mantenimiento. Su estudio se convierte en una visión práctica de los principios, leyes, … y objetivos del diseño orientado a objetos: KISS, modularidad, principios de sustitución de Liskov, Abierto/Cerrado de Meyer, ...

En teoría, todos con un poco de práctica podríamos llegar a diseños que solucionen de una manera adecuada los problemas de las aplicaciones, sin embargo, aplicar patrones específicos nos permite usar técnicas probadas, más accesibles a los desarrolladores. Los patrones de diseño de software facilitan la elección de alternativas de diseño evitando soluciones que comprometan la calidad del software. Además, gracias a los patrones podemos disponer de un catálogo de soluciones que seremos capaces de aplicar sistemáticamente y de manera recurrente, lo que mejorará el desempeño del equipo y la calidad de los proyectos, sobre todo, porque se elevará el vocabulario en las reuniones de diseño donde la comunicación es fundamental entre los miembros del equipo!

Qué aprenderé en el Curso de Patrones

  • Entre las competencias y conocimientos que vas a adquirir con la realización del Curso de Patrones se encuentran:

    • Detectar problemas de diseño
    • Saber qué patrón aplicar
    • Diagramar la solución
    • Aplicar el patrón en el código
  • Este es el catálogo de patrones que veremos:

    • Patrones Creacionales
      • Abstract Factory
      • Builder
      • Factory Method
      • Prototype
      • Singleton
    • Patrones Estructurales
      • Adapter
      • Bridge
      • Composite
      • Decorator
      • Facade
      • Flyweight
      • Proxy
    • Patrones de Comportamiento
      • Chain of Responsibility
      • Command
      • Interpreter
      • Iterator
      • Mediator
      • Memento
      • Observer
      • State
      • Strategy
      • Template Method
      • Visitor

Objetivos del curso

Aprender a detectar y entender los problemas de diseño, para saber en qué momentos es adecuado aplicar un patrón de diseño, evitar el sobrediseño (YAGNI). Una vez detectado el problema, saber qué patrón es el más adecuado para resolverlo y, finalmente, cómo debemos aplicarlo en el proyecto.

Conocer un amplio catálogo de patrones de diseño de software y sus características, la intención que nos llevaría a aplicar cada patrón, el diagrama de clases y sus colaboraciones, así como la implementación en código. Relacionar y utilizar unos patrones con otros, llegando a soluciones de elevada calidad.

Por qué debes aprender Patrones de diseño de software

Aprender patrones de diseño está bien pero ten muy en cuenta que no se trata simplemente de conocer un patrón y aplicarlo constantemente allá donde podamos. Hay que detectar un problema, pues no tiene sentido aplicar un patrón sin identificar los fallos de diseño y sus posibles mejoras.

Debes tener claro que las mejores soluciones de diseño resultan de la aplicación de varios patrones en conjunto. Un solo patrón puede ser útil en muchas situaciones, pero las aplicaciones reales necesitan muchas veces la aplicación de la suma de varios patrones para llegar a la mejor solución a una necesidad o problema detectado.

En este curso aprenderás el modo correcto de aplicar los patrones y saber perfectamente cuál o cuáles son los patrones de diseño de software que debes aplicar para resolver los problemas, cómo diagramar la solución y aplicarla en el código.

Aplicaremos casi todos los patrones en distintos ejercicios (TicTacToe, Supermercado, Comunicaciones, Simulador, …). En particular, a través del primero mostraremos la evolución del software mediante diversas versiones de requisitos, gráficos, distribuido y persistencia entre otras.

Qué tengo que saber

Para hacer este curso necesitas tener conocimientos sólidos de programación orientada a objetos así como de diseño orientado a objetos.

Clases y contenidos

Introducción a Patrones de diseño y patrón Singleton

En esta clase veremos la introducción a los patrones de diseño. Qué son, por qué los debemos de usar, cuándo y cómo los debemos de usar. En esta introducción también presentaremos las ideas y mecánicas del curso.

Además comenzaremos a ver nuestro catálogo de patrones con el patrón Singleton, que explicaremos en detalle, sobre sus objetivos, modo de implementar y demás.

Variantes de Singleton y patrón Abstract Factory

En esta clase hacemos un repaso de la introducción a patrones y vemos otros usos del patrón Singleton que no habíamos visto con detalle, o que no habíamos nombrado como el Multiplón. Además comenzamos con el siguiente patrón Abstract Factory.

Patrones creacionales

En esta clase veremos los patrones creacionales que nos quedan por ver. Recuerda que en la clase anterior vimos Singleton y Abstract Factory, de modo que los que nos quedan por ver son:

  • Builder
  • Factory Method
  • Prototype

Además comenzaremos con los patrones de diseño estructurales. En esta clase hemos visto:

  • Adapter
  • Bridge
Patrones de diseño estructurales

En esta clase continuamos viendo los patrones de diseño estructurales. En la clase anterior habíamos visto Adapter y Bridge y en esta clase hemos terminado el listado completo de los patrones estructurales del libro: Composite, Decorator, Facade, Flyweight, Proxy.

Patrones de Comportamiento

En esta clase comenzamos con los patrones de diseño de software clasificados como "de comportamiento". Veremos los primeros patrones de esta clasificación:

  • Chain of Responsibility
  • Command
  • Interpreter
  • Iterator
Otros patrones de diseño comportamentales

Seguimos avanzando en la definición y explicación de los patrones de diseño de comportamiento. En esta clase veremos Mediator, Memento, Observer y State.

Últimos patrones de comportamiento

En esta clase hacemos un repaso general a los patrones de diseño que hemos abordado a lo largo de todo el curso y completamos la lista de patrones con los últimos que nos quedaban:

  • Strategy
  • Template Method
  • Visitor Finalizamos el bloque de teoría de este curso con unas explicaciones sobre las motivaciones para aplicar patrones, cómo se deben aplicar, cuándo, cómo unos patrones se relacionan con otros, etc.
Patrones aplicados en un proyecto

En esta clase vamos a ver el proyecto que vamos a realizar en el curso, el TicTacToe, sobre el que venimos trabajando también en cursos anteriores y en el que hemos ido construyendo diversas mejoras y adaptaciones. Veremos que muchas de las mejoras realizadas durante cursos anteriores eran ya implementaciones de patrones de diseño, aunque no les habíamos puesto nombre. Aterrizaremos las ideas y los conceptos en vista del conocimiento adquirido hasta ahora y nos pondremos en un estado del proyecto donde ya podremos aplicar patrones más complejos.

Práctica de aplicación de patrones para permitir undo / redo

En esta clase vamos a ver cómo podríamos aplicar Undo / Redo en el juego del TicTacToe. Discutiremos qué patrones de diseño se podrían aplicar, por qué motivos. Luego veremos en el código cómo se implementan esos patrones de diseño, varios en conjunto, que serán necesarios para hacer un diseño adecuado para esta nueva funcionalidad.

Planteamiento de aplicación capaz de funcionar standalone y cliente / servidor

En esta clase veremos el planteamiento de la práctica del Mastermind que permite realizar undo / redo, corrigiendo el código presentado por estudiantes del curso. Además realizaremos el planteamiento de la aplicación del TicTacToe permitiendo ahora su funcionamiento en dos modalidades: 1) standalone, en el que toda la aplicación se encuentra de manera monolítica en el mismo sistema y 2) mediante cliente servidor, con comunicaciones entre ambos vía sockets.

Práctica de patrón proxy e incorporación de nuevos requisitos al proyecto

En esta clase solucionamos el código de una versión anterior en la que se habían ensuciado los controladores al tener que llevar el procesamiendo de dos modelos distintos de aplicación, standalone y cliente / servidor. Para ello aplicaremos el patrón proxy. Luego se plantean nuevos requisitos en los que se tendrá en cuenta la posibilidad de guardar partidas.

Versiones finales de la práctica y últimos patrones. Patrón DAO

En esta clase veremos cómo se implementa la versión final de la práctica del TicTacToe, aplicando los últimos patrones para resolver de una manera adecuada los requisitos finales. Veremos el patrón DAO, que no está en la lista de los 23 patrones del libro de Gamma, pero que nos ayuda a resolver necesidades comunes con la capa de persistencia.

Resumen patrones, dudas y planteamiento de nueva práctica

En esta clase vemos un resumen del enfoque correcto, a tener en cuenta para la aplicación de los patrones de diseño. Además hacemos el enunciado de un nuevo ejercicio práctico en el curso, basado en los tickets de una cadena internacional de sumermercados.

Resolución práctica supermercado internacional

En esta clase veremos cómo se resuelve la práctica propuesta de patrones de diseño para aplicación en el supermercado internacional.Repasamos primero una solución realizada por un estudiante para luego entrar en la solución propuesta por el profesor. En el último punto de la clase se expresa la práctica propuesta para finalización del curso.

Tutorías

Sesión Extra Patrones

Tutoría para resolución de dudas y preguntas sobre lo visto en el curso

Añadir a Google Calendar
Práctica de Patrones

Práctica final curso Patrones: Juego de las damas Se propone la realización del juego de las damas, junto a alternativas de otras prácticas posibles, como se detalla en el repositorio de esta práctica. https://github.com/Master-Desarrollo-20-21/Patrones-de-dise-o---Juego-de-las-damas

Añadir a Google Calendar

Avisos

Para ver los avisos del curso necesitas acceder con tu cuenta de usuario.

Valoraciones

David del Castillo Rodriguez

Victor Moreno

Sólo sé que no sabía nada

Daniel Bernal

Muy bueno....

Pedro Márquez Gomez

Muy buen curso

Eduardo Franco Gutierrez

Excelente

Gonzalo

Antonio José Sinoga

Por su experiencia, Luis tiene el conocimiento, y por su vocación docente, la manera de transmitirlo. Es el Profesor, en mayúscula.

xavier gomez canals

Joana Pérez Jiménez

MARIBEL NARGANES

Muy bueno, en la línea de Luis

MARTIN ALONSO CASTILLO

Muy bueno, completo, satisfactorio

Luis Enrique Magallanes Ocampo

¡Excelentes explicaciones!

Javier Jara Fuentes

Cristóbal Cobos Budia

Luis Fernández es un gran profesor. Sabe transmitir de una manera muy clara la información y sin necesidad de usar florituras en el lenguaje. Como él ya dice en varias de sus explicaciones.

Manuel Soberano

Excelente calidad del curso... como siempre viniendo de luis fernandez. Esta metodologia de ensenanza que esta aplicando, puedo confirmar me esta ayudando un monton

Jose

Paula Quitián Hernandez

Rubén Galán Jiménez

Agustin

Marc Torramilans Privat

Marcos Antonio Valencia Ramírez

VÍCTOR HUGO VALLEJOS CHACÓN

Marcos Sánchez

Gran curso que forma parte de un excepcional Master dirigido y coordinado por buenos profesionales como son Miguel y Luis ..

Ana Santamaría Aparicio

Oro puro, como todos los cursos de Luis Fernández

Juan Caravaca

Manuel Malvar Tombo

Miguel Valiente

Programa completísimo, y de los que de verdad merece la pena hacer. Cambia por completo tu cabeza a la hora de desarrollar. Imprescindible.

¿Conoces nuestra tarifa plana?

Toda la formación de EscuelaIT, con más de 130 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