Encapsular estado con atributos privados y métodos de acceso que protejan las invariantes.
Diseñar jerarquías de herencia y decidir cuándo conviene composición en su lugar.
Definir interfaces y clases abstractas para separar el contrato de la implementación.
Aplicar polimorfismo para sustituir condicionales encadenados por despacho dinámico.
Sobrescribir equals, hashCode y toString de forma coherente con el modelo de datos.
Organizar el dominio en paquetes y aplicar los principios SOLID en refactorizaciones concretas.
Escribir pruebas con JUnit que fijen el comportamiento antes de tocar el diseño.
Contenido del curso
8 módulos · 39 clases en vídeo · práctica guiada en cada módulo
Módulo 1 · Presentación y punto de partida4 clases
Qué problema resuelve la orientación a objetos
Entorno: proyecto, dependencias y ejecución de pruebas
Revisión rápida de clases y objetos
El dominio que se modela a lo largo del curso
Módulo 2 · Encapsulación y estado5 clases
Atributos privados e invariantes de clase
Constructores que garantizan objetos válidos
Métodos de acceso: cuándo sobran
Objetos inmutables y clases record
Ejercicio: una clase que no admite estados imposibles
Módulo 3 · Herencia y composición5 clases
extends y la cadena de constructores
super, sobrescritura y anotación Override
Cuándo la herencia rompe el diseño
Composición y delegación como alternativa
Clases selladas para cerrar una jerarquía
Módulo 4 · Abstracción e interfaces5 clases
Clases abstractas y métodos sin cuerpo
Interfaces como contrato público
Métodos por defecto y estáticos en interfaces
Programar contra la interfaz, no contra la clase
Ejercicio: cambiar de implementación sin tocar el cliente
Módulo 5 · Polimorfismo en la práctica5 clases
Despacho dinámico frente a condicionales encadenados
Sobrecarga y sobrescritura: diferencias
instanceof y coincidencia de patrones
Enumerados con comportamiento propio
Refactorizar un switch grande a polimorfismo
Módulo 6 · Contratos del lenguaje5 clases
equals y hashCode coherentes
Comparable y Comparator para ordenar
toString útil para depurar
Excepciones propias del dominio
Genéricos básicos en clases y métodos
Módulo 7 · Diseño y refactorización5 clases
Responsabilidad única con ejemplos reales
Abierto/cerrado: extender sin modificar
Sustitución de Liskov y sus violaciones típicas
Inversión de dependencias sin framework
Pruebas JUnit como red de seguridad
Módulo 8 · Caso práctico: sistema de reservas5 clases
Del enunciado al modelo de clases
Interfaces de repositorio y dos implementaciones
Reglas de negocio y excepciones propias
Batería de pruebas del dominio
Entrega: proyecto refactorizado y documentado
Requisitos
Haber programado en Java: tipos, control de flujo, arrays y clases sencillas.
Un JDK instalado y un entorno de desarrollo como IntelliJ IDEA Community o Eclipse.
Manejo básico de la línea de comandos para compilar y ejecutar pruebas.
Descripción
La orientación a objetos se suele enseñar con animales que ladran y figuras geométricas, y luego el primer proyecto real llega lleno de clases enormes, condicionales encadenados y herencias que nadie se atreve a tocar. El problema no es la sintaxis, que se aprende en una tarde, sino saber qué debe ser una clase y qué responsabilidad le corresponde.
Este curso trabaja sobre ejercicios de modelado tomados de situaciones habituales: facturación, reservas, dispositivos con estados. Cada bloque plantea un requisito nuevo que rompe el diseño anterior y obliga a refactorizar con criterio, apoyándose en pruebas JUnit que confirman que nada se ha roto. Los principios SOLID aparecen como explicación de decisiones ya tomadas, no como teoría suelta.
Al terminar se distingue una jerarquía útil de una decorativa y se sabe cuándo una interfaz ahorra trabajo futuro. Es el paso previo a Java avanzado, donde entran colecciones, streams y concurrencia, y también la base para entender el código de Spring o de cualquier framework que se apoye en inyección de dependencias e inversión de control.
¿Para quién es este curso?
Desarrolladores junior que ya escriben Java y quieren dejar de acumular clases inmanejables.
Alumnado de segundo curso de Desarrollo de Aplicaciones que afronta su primer proyecto grande.
Profesorado de FP que necesita ejercicios de modelado con enunciados cercanos al trabajo real.
Bajo demanda
Curso diseñado con la ficha cerrada. Se produce al confirmarse un grupo o un contrato.
Este sitio web utiliza cookies propias y de terceros para recopilar información con finalidad técnica. No se recaban ni ceden datos de carácter personal sin tu consentimiento. Más información en la política de cookies.