Lección 20: Proyecto final II: extender con herencia
El hotel es un éxito, y llega un requisito nuevo: los perros necesitan paseos, los gatos necesitan areneros. En lugar de reescribir el sistema, lo extendemos: Dog y Cat heredan de Pet, y todo el hotel sigue funcionando sin cambiar una sola línea. Esa es la habilidad real del trabajo diario: cambiar
El hotel no necesita saber quién es perro y quién es gato: le pregunta a cada huésped "¿cuáles son tus instrucciones?", y cada uno responde a su manera. Una sola recepción, huéspedes de todo tipo.
- extensión del modelo
- Agregar capacidades a un sistema existente mediante nuevas clases hijas, sin tocar el código que ya funciona.
- abierto para extensión, cerrado para modificación
- Un principio de diseño: el buen código crece agregando clases nuevas, no editando las existentes.