La Programación Orientada a Objetos (POO) es un concepto complejo con muchos aspectos. A lo largo del tiempo, POO ha sido interpretada de diferentes maneras. Existen al menos dos enfoques principales de POO: uno formulado por Alan Kay, creador del lenguaje SmallTalk, y otro que se centra en el polimorfismo, la herencia y la encapsulación (según Grady Booch). Hoy en día, generalmente nos referimos al segundo enfoque cuando hablamos de POO, aunque el primero sigue siendo relevante en muchos lenguajes. Incluso dentro del segundo enfoque, diferentes lenguajes ponen énfasis en distintas capacidades. Lo que se considera esencial en algunos lenguajes de POO, puede no serlo en otros.
Si intentamos identificar el aspecto más fundamental que comparten todos los lenguajes de POO (según Booch), ese sería el polimorfismo de subtipos.
El polimorfismo de subtipos es la característica más importante de la programación orientada a objetos moderna. Benjamin Pierce. Autor del libro "Teoría de tipos en lenguajes de programación".
En este curso, exploraremos en detalle el polimorfismo, los mecanismos para su implementación y, lo más importante, aprenderemos a aplicarlo correctamente. Los temas principales de este curso incluyen:
- Tipos de polimorfismo: polimorfismo de subtipos y polimorfismo paramétrico.
- Despacho y sus tipos.
- Inversión de dependencias e inyección de dependencias.
- Contenedor de Inyección de Dependencias (DI).
- Principios SOLID (SRP, OCP, LSP, ISP, DIP).
Además, nos familiarizaremos con el concepto de "patrones de diseño". Analizaremos su impacto en la estructura del código y conoceremos algunos patrones populares:
- Objeto Nulo (Null Object).
- Estrategia (Strategy).
- Fábrica (Factory).
Discutiremos cuándo el polimorfismo es necesario, cuándo no lo es y cuándo puede ser perjudicial. También exploraremos varias técnicas que permiten obtener un comportamiento polimórfico sin utilizar objetos, revisando diferentes tipos de despacho.
Preparación para este Curso
Este curso asume que ya tienes un buen dominio de la sintaxis y los métodos de trabajo con funciones y objetos, así como una comprensión básica de POO en JavaScript. Si tienes dificultades con estos temas, te recomendamos completar los siguientes cursos en Códica:
- Fundamentos de JavaScript
- JS: Objetos
- JS: Funciones
- JS: Introducción a la POO
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.