
Head First Design Patterns, 2nd Edition
Eric Freeman, Elisabeth Robson, Kathy Sierra, Bert Bates
- Editorial
- O'Reilly
- Año
- 2021
- Páginas
- ~672
- Nivel
- Básico
De qué trata
Segunda edición completamente actualizada de una de las guías más influyentes y pedagógicas sobre patrones de diseño orientados a objetos. Eric Freeman y Elisabeth Robson modernizan el clásico para adaptarlo al estándar contemporáneo de Java (Java 8 a Java 11 y superiores), incorporando expresiones lambda y mejoras de la API estándar. Está dirigida a desarrolladores principiantes e intermedios que ya comprenden la sintaxis de Java y los conceptos fundamentales de la orientación a objetos (herencia, interfaces y polimorfismo), pero que desean aprender a escribir código desacoplado, reutilizable y fácil de mantener aplicando soluciones contrastadas de la industria.
El libro examina en profundidad los patrones de diseño clásicos de la banda de los cuatro (GoF): Strategy, Observer, Decorator, Factory Method, Abstract Factory, Singleton, Command, Adapter, Facade, Template Method, Iterator, Composite, State, Proxy y patrones compuestos como MVC. Explica principios clave de diseño de software (abierto/cerrado, inversión de dependencias, bajo acoplamiento y principio de mínima sorpresa) utilizando colecciones estándar de Java, flujos concurrentes, invocación remota (Java RMI), reflexión, proxies dinámicos y la API Java Sound / MIDI y Java Swing para interfaces de usuario y generación de audio.
A través del formato cognitivo y visual característico de la serie Head First, el lector practica activamente resolviendo acertijos e implementando sistemas modulares completos como una estación meteorológica, una consola domótica y una mesa de mezclas DJ con MVC. Aporta una comprensión intuitiva y perdurable de cuándo aplicar un patrón y, sobre todo, cuándo evitar la sobreingeniería. Aunque los patrones se presentan en Java y algunas bibliotecas de interfaz como Swing son veteranas, los principios conceptuales son universales y directamente transferibles a lenguajes como C#, TypeScript, Python o Go.
- Patrones de diseño GoF
- Principios SOLID
- Java 8+
- Modelo-Vista-Controlador (MVC)
- Patrón Observer
- Patrón Factory
- Patrón Decorator
- Patrón Command
- Patrón State
- Programación orientada a objetos
- Refactorización
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✓ Incluye proyectos
Proyectos
Simulador de cabina DJ y secuenciador de ritmos (Beat MVC)
Aplicación de escritorio interactiva construida con Java Swing y el secuenciador Java MIDI que implementa el patrón Modelo-Vista-Controlador (MVC) para generar ritmos musicales, ajustar tempos por minuto (BPM) y sincronizar múltiples vistas.
Control remoto domótico universal programable
Sistema de automatización para electrodomésticos del hogar que utiliza el patrón Command para desacoplar botones de las acciones y permite ejecutar deshechos (Undo) en múltiples niveles y macros agrupadas.
Estación de monitoreo meteorológico Weather-O-Rama
Sistema de adquisición y distribución de métricas meteorológicas en tiempo real que implementa el patrón Observer para alimentar automáticamente diversos paneles de visualización y estadísticas.

