Introducción a la programación orientada a objetos
De analizar «La Viñeta» a construir modelos, relaciones, jerarquías, colecciones Java y proyectos con Maven.
Análisis y diseño orientado a objetos
Del problema real al modelo de clases y diseño conceptual para la tienda de cómics «La Viñeta».
Clases, objetos y responsabilidades
Definición de atributos, métodos, encapsulamiento, constructores y responsabilidades en Java.
Asociaciones, agregación, composición y herencia
Modelado e implementación de relaciones entre objetos, jerarquías de herencia y reutilización.
Colecciones: List, ArrayList, LinkedList y polimorfismo
Manejo de estructuras de datos dinámicas en memoria, interfaces de colecciones e iteración.
Clases abstractas, sobrescritura y polimorfismo
Contratos base con clases abstractas, métodos sobrescritos (@Override) y enlace dinámico.
Maven y organización de proyectos
Transformación de diagramas a un proyecto Java real estructurado con Maven y paquetes.
Vista
Java Swing, FlatLaf, layouts, eventos y construcción de interfaces de usuario para escritorio.
Control y Servicio
Modularidad, separación de responsabilidades, capas de negocio y manejo profesional de excepciones.
Cuando Main hace demasiado
Por qué conviene separar responsabilidades antes de que la aplicación crezca sin control.
ProductoController
El intermediario entre la vista y el servicio: coordinar acciones de usuario sin acoplar capas.
ProductoService
Reglas de negocio, validaciones y lógica de dominio aisladas de la interfaz gráfica.
Excepciones y errores
Anticipar fallos, capturar excepciones y presentar mensajes claros y amigables al usuario.
Persistencia
JDBC directo, DriverManager, consultas SQL seguras, patrón DAO, interfaces y bajo acoplamiento.
¿Dónde quedaron nuestros productos?
Por qué los datos en memoria desaparecen al cerrar el programa y cómo conectarse a bases de datos.
DriverManager y Connection
Primera conexión a MySQL: cargar drivers, configurar URL JDBC y gestionar la conexión.
PreparedStatement y ResultSet
Consultas parametrizadas seguras, prevención de inyección SQL y transformación de tablas a objetos.
ProductoDAO y CRUD
Encapsulación de consultas SQL en una clase especializada mediante el patrón Data Access Object.
Interfaz CrudDAO
Definir un contrato común para que el resto del sistema no dependa de cómo se guardan los datos.
Polimorfismo y bajo acoplamiento
Una misma interfaz y múltiples implementaciones de almacenamiento: memoria vs MySQL sin modificar código.
Tienda de Cómics — «La Viñeta»
La síntesis completa de todo el año: paquetes model, view, controller, service, dao, config y exceptions con código Java comentado paso a paso.